小弟多处查找,找到一个代码,很好用,可惜,因各部门报上来表结构不同,导致无法使用,所以才想到用啥法子自动调整表的结构,希望大侠们给些建议。
close all
set safety off
set default to 'e:\'&&设置默认目录
messagebox('请选择要导入的XLS文件'+chr(13)+;
'注意表格不要有格式,首行的命名符合规则';
+chr(13)+'只把第一行做为字段','提示')
ss=getfile('xls')&&打开选择文件对话框,并赋值
if isblank(ss)
return
endif
myexcel=createobject('excel.application')&&创建EXCEL对象
*myexcel.visible=.t.
bookexcel=myexcel.workbooks.open(ss)&&打开选择的文件
i=1
***************获得表的可用sheet*************************************
for each omyvar in myexcel.sheets
dimension a(i)
a(i)=omyvar.name
i=i+1
next omyvar
******************************************************
nrows=bookexcel.worksheets(a(1))&&设置第一个表为工作表
UsedRange =nrows.UsedRange&&设置工作区域
***************把第一行的数据赋值给数组b,一会删除第一行,便于导入*****
ma=usedrange.columns.count&&返回列的总数
dimension b(ma)
for i=1 to ma
b(i)=myexcel.cells(1,i).value
next
******************************************************
myexcel.Worksheets(a(1)).Activate
myexcel.activesheet.rows(1).select&&选中第一行
myexcel.Selection.EntireRow.Delete&&删除选中的行
myexcel.Worksheets(a(1)).select
*********检查d:\hh.xls是否存在,若存在,删除***********
IF FILE('d:\hh.xls')
DELETE FILE d:\hh.xls
ENDIF
*********************************
myexcel.ActiveWorkbook.SaveAs('d:\hh.xls')&&文件另存为
myexcel.ActiveWorkbook.saved=.t.&&不保存修改
myexcel.workbooks.close&&关闭工作区不提示保存
myexcel.quit&&excel退出
*release myexcel
*******************
import from d:\hh.xls type xl5&&导入到默认目录下的hh.dbf表中
DELETE FILE d:\hh.xls&&删除表
***********给表字段重命名**************************
use hh
ma=fcount()
dimension c(ma)
for la=1 to ma
c(la)=field(la)
next
for la=1 to ma
?la,c(la),b(la)
alter table hh rename &c(la) to &b(la)
next
*****************************************
messagebox('已成功将表导入到E:\hh.dbf','提示')
close all