标题:现在的VFP9.0支持excel2003格式的导出和导入吗,
只看楼主
qshuju
Rank: 3Rank: 3
等 级:论坛游侠
威 望:3
帖 子:217
专家分:112
注 册:2011-6-9
结帖率:82.14%
已结贴  问题点数:20 回复次数:10 
现在的VFP9.0支持excel2003格式的导出和导入吗,
现在的VFP9.0支持excel2003格式的导出和导入吗?我的vfp9.0好像就不支持,比如 …… xls 8 就出现错误提示。是不是不支持呀?还是我vfp9.0有问题?
搜索更多相关主题的帖子: excel2003 
2011-06-09 20:52
qshuju
Rank: 3Rank: 3
等 级:论坛游侠
威 望:3
帖 子:217
专家分:112
注 册:2011-6-9
得分:0 
没人回答,自己顶上去。
2011-06-10 08:48
panpende
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:4
帖 子:528
专家分:963
注 册:2009-4-27
得分:20 
不完全支持,对excel4.0工作表比较支持。
2011-06-10 09:37
qshuju
Rank: 3Rank: 3
等 级:论坛游侠
威 望:3
帖 子:217
专家分:112
注 册:2011-6-9
得分:0 
回复 3楼 panpende
那该怎么办,每次都要事先转换一下就太麻烦了。有没有什么解决的办法呀?
2011-06-10 12:08
panpende
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:4
帖 子:528
专家分:963
注 册:2009-4-27
得分:0 
事先转换一下,也许是最可行的方法。
2011-06-10 13:18
qshuju
Rank: 3Rank: 3
等 级:论坛游侠
威 望:3
帖 子:217
专家分:112
注 册:2011-6-9
得分:0 
追问: 能不能用代码来进行事先转换?
       用代码先转换,然后再导入行不行?代码该怎么写呢?
2011-06-10 17:32
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
得分:0 
VFP可以写程序直接编辑office文件的,用Ole打开Excel(任何版本均可)文件,直接读写单元格上的数据,生成图表也可以。
收到的鲜花
  • qshuju2011-07-04 16:09 送鲜花  3朵  

授人以渔,不授人以鱼。
2011-06-22 17:15
qshuju
Rank: 3Rank: 3
等 级:论坛游侠
威 望:3
帖 子:217
专家分:112
注 册:2011-6-9
得分:0 
回复 7楼 TonyDeng
用Ole打开Excel(任何版本均可)文件
谢谢,我要进一步学习一下了。
2011-07-04 16:08
qshuju
Rank: 3Rank: 3
等 级:论坛游侠
威 望:3
帖 子:217
专家分:112
注 册:2011-6-9
得分:0 
给你段vfp直接读取EXCEL文件的示例。

M_File=GETFILE('xls','订单文件')
IF M_File=""
   =MESSAGEBOX("请选择待导入的收订单文件!",0+48,"提示")
   RETURN
ELSE
   IF JUSTEXT(M_FILE)#"XLS"  &&获得文件扩展名
      =MESSAGEBOX("您选择的不是EXCEL文档!",0+48,"提示")
      RETURN
   ENDIF
ENDIF
USE 图书订单表
ZAP
myexcel=createobject('excel.application')      &&创建一个对象
myexcel.visible=.f.&&不可见
bookexcel=myexcel.workbooks.open(M_File)      &&打开指定文件
o_SheetName=myexcel.application.ActiveSheet.Name    &&获取当前激活工作表的名称
UsedRange =bookexcel.worksheets(o_SheetName).UsedRange     &&返回工作表中可使用的区域,UsedRange表的属性
o_rows=UsedRange.rows.count    &&汇总行
o_cols=UsedRange.columns.count    &&汇总列
IF o_rows<=1
   =MESSAGEBOX("待导入数据行数太少,请检查!",0+16,"提示")
ELSE
   FOR i=2 TO o_rows
       m1=myexcel.cells(i,1).value      &&书号     
       m2=myexcel.cells(i,2).value      &&书名      
       m3=myexcel.cells(i,3).value      &&出版社
       m4=myexcel.cells(i,4).value      &&作者      
       m5=myexcel.cells(i,5).value      &&定价
       m6=myexcel.cells(i,6).value      &&数量
       APPEND BLANK
       REPLACE 书号 WITH m1,书名 WITH m2,出版社 WITH m3,作者 WITH m4,定价 WITH m5,数量 WITH m6
    ENDFOR
ENDIF
myexcel.workbooks.close    &&关闭工作区
myexcel.quit    &&关闭excel
brow
2011-07-05 08:25
lyxc34
Rank: 2
等 级:论坛游民
帖 子:139
专家分:50
注 册:2011-7-3
得分:0 
  呵呵,我昨天也为这个事情郁闷,后来找到个方法,不知道对你有没有用。
  先从你已有的DBF表里面导出一个,存为EXCEL5.0,然后以这个表为模板,将你要导入的EXCEL数据复制到这个模板里面,保存,会提示你版本过低,别理他,以5.0的格式保存,然后就可以用导入向导导入了。
2011-07-08 00:55



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-342348-1-1.html




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

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