| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 5309 人关注过本帖
标题:如何从多个复杂EXCEL文件中批量取得数据存入dbf表文件?
只看楼主 加入收藏
antony521
Rank: 3Rank: 3
等 级:论坛游侠
威 望:1
帖 子:170
专家分:175
注 册:2009-8-20
收藏
得分:0 
回复 10楼 sylknb
看楼上的网址,这些现在都不是问题了,只有表格中段的物资项目怎么循环读取.谢谢关注.

[ 本帖最后由 antony521 于 2015-7-10 11:14 编辑 ]
2015-07-10 10:57
sylknb
Rank: 4
等 级:贵宾
威 望:14
帖 子:1547
专家分:184
注 册:2006-6-3
收藏
得分:0 
以下是引用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 编辑 ]
2015-07-10 12:14
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:335
帖 子:9841
专家分:27213
注 册:2012-2-5
收藏
得分:0 
回复 8楼 antony521
上传另存为2003的EXCEL文件
一楼的文件版本太高,打不开。

坚守VFP最后的阵地
2015-07-10 12:19
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:335
帖 子:9841
专家分:27213
注 册:2012-2-5
收藏
得分:0 

坚守VFP最后的阵地
2015-07-10 12:21
antony521
Rank: 3Rank: 3
等 级:论坛游侠
威 望:1
帖 子:170
专家分:175
注 册:2009-8-20
收藏
得分:0 
回复 13楼 sdta
已经转换EXCEL文件重新上传一楼.
2015-07-10 15:28
antony521
Rank: 3Rank: 3
等 级:论坛游侠
威 望:1
帖 子:170
专家分:175
注 册:2009-8-20
收藏
得分:0 
回复 14楼 sdta
这个例子也是要一个一个文件手动掐头去尾才行,工作量太大了,体现不出电脑的优势啊!
2015-07-10 15:30
sylknb
Rank: 4
等 级:贵宾
威 望:14
帖 子:1547
专家分:184
注 册:2006-6-3
收藏
得分:0 
EXCEL与VFP 是二个不同的系统,VFP也不是万能的。特别是 Office不断在升级。
2015-07-10 15:37
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:335
帖 子:9841
专家分:27213
注 册:2012-2-5
收藏
得分:0 
以下是引用antony521在2015-7-10 15:30:18的发言:

这个例子也是要一个一个文件手动掐头去尾才行,工作量太大了,体现不出电脑的优势啊!

参考示例:https://bbs.bccn.net/viewthread.php?tid=434552&extra=&highlight=EXCEL&page=6

坚守VFP最后的阵地
2015-07-10 15:48
antony521
Rank: 3Rank: 3
等 级:论坛游侠
威 望:1
帖 子:170
专家分:175
注 册:2009-8-20
收藏
得分:0 
回复 12楼 sylknb
看了这段代码.需要手动改每一个文件,对提高工作效率帮助不大,最好是一个全自动过程.一楼的附件已经转为2003格式,麻烦再给看看.
2015-07-10 15:50
antony521
Rank: 3Rank: 3
等 级:论坛游侠
威 望:1
帖 子:170
专家分:175
注 册:2009-8-20
收藏
得分:0 
回复 18楼 sdta
我就是看了这个帖子才有这个想法的,目前用wangzhiyi的办法提取了表头需要的数据,就是中间这一块物资项目需要个循环在对照表和代码段中如何表达弄不出来了.
就弄成了这个样,只能读一行物资项目.
图片附件: 游客没有浏览图片的权限,请 登录注册

糟糕,忘了转对照表了,再重传!
[local]8105[/local]

[ 本帖最后由 antony521 于 2015-7-12 21:23 编辑 ]
2015-07-10 15:58
快速回复:如何从多个复杂EXCEL文件中批量取得数据存入dbf表文件?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.021674 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved