以下是引用antony521在2015-7-10 10:57:32的发言:
看楼上的网址,这些现在都不是问题了,只有表格中段的物资项目怎么循环读取.谢谢关注.
不是把表格中段的物资项目循环读取.而是把放入数组中的EXCEL表 循环读取出来追加到DBF表中
SET SAFE OFF
clear all
yy=MESSAGEBOX("你是否符合下列要求吗?"+chr(13)+"1.在D盘下新建一个目录."+CHR(13)+"2.把『相同结构的Excel表』放在此目录中."+chr(13)+"3.去掉表的顶端标题行,合适的列宽,行高,取消各种修鉓(如合并单元格等等)及计算公式,"+CHR(13)+"
字段名内不能有空格与标点符号."+CHR(13)+"4.最后把Excel表另存为:Microsoft Excel 5.0/95格式!",4+48+0,'注意以下的提醒!')
IF yy=6
cdir=GETDIR("d:","请选择存放相同结构的Excel表的目录")
*CD (cdir)
&&进入相应的目录
IF EMPTY(cdir)
&&判断有否选择要导入Excel表的目录
MESSAGEBOX("请选择待导入的EXCEL文档的目录!",0+48,"提示")
RETURN
ELSE
cdir=left(cdir,len(cdir)-1)
cd (cdir)
delete file todata.dbf
lnFiles=Adir(aFile,"*.xls")
**VFP 中用代码从EXCEL中导向DBF**
eole=CREATEOBJECT('Excel.application')
&&创建COM连接
eole.DisplayAlerts = .f.
&&不要产生警告提示
eole.Workbooks.open(cdir+"\"+aFile(1,1))
&& 这里取绝对路径
eole.Worksheets[1].Activate
&&这里用表名就是类似SHEET1 什么的
eole.visible=.f.
&& 隐藏EXCEL进程,另读取数据都在后台进行
eole.ActiveWorkbook.SaveAs(cdir+"\"+"dbfname.dbf",11) &&DBASE3格式为8,11为dbf4
eole.ActiveWorkbook.saved=.t.
&&不显示保存对话框
eole.save &&保存
eole.Quit
&&退出
RELEASE eole &&释放
*use aFile(1,1)
use dbfname.dbf
copy Structure To todata
use todata
For lnI=1 To lnFiles
lcStr=(aFile(lnI,1))
Append From '&lcStr.' type XL5
&& SHEET JUSTSTEM(lcstr)表示哪一个工作表,缺省为第一个工作表,&&xl5为excel 5.0/95版, xls 为excel 2.版,xl8 为97版
wait "正在转换!请稍候.....已转换:"+lcstr windows TIMEOUT 1 nowait
Endfor
[
本帖最后由 sylknb 于 2015-7-10 12:16 编辑 ]