USE DDD
COPY TO BB TYPE xl5 FIELDS zzjgdm,dwmc,fddbr,xxdz,xzqhdm,yzbm,lxdh,frcy,dwlb,bb2,bm2,S12,S22,Bg2,Bz2,TJ2,QC2
USE
local objExcelApp
objExcelApp=createobject("excel.application")
objExcelApp.visible=.f.
Filename=SYS(5)+SYS(2003)+"\BB.xls"
objExcelApp.workbooks.open(Filename)
AA=SYS(5)+SYS(2003)+"AA"
objExcelApp.ActiveWorkbook.saveas(AA)
objExcelApp.quit
RELEASE objExcelApp
上面这段代码是把DDD中的数据导入到Excel文件BB中,再另存为AA中的,我是在VFP9下编的程序,当DDD的记录超过16384条时,在BB中显示的记录数是对的,而在AA中则只剩下了16384条。是不是即使是用VFP9通过代码打开Excel文件再保存,也要受到16384这个限制呢???那么我想通过代码调整BB.xls文件的格式,怎么实现呢?
请教高手哦!
这个16384与VFP无关,是Excel2003之前版本的限制,是EXCEL的问题
可以导出CSV格式,一样可以用EXCEL打开,不过Excel2003之前的版本的Excel打开只能看到16384条记录。
Excel2003好像支持65535,好像Excel2007开始没有限制了,不过用VFP9 COPY TO 目前最多应该就是65535
这个你搜一下EXCEL各版本的最大记录数
谢谢楼上两位,不过我的Excel就是2003。
不知道是什么原因呢?
将
objExcelApp.ActiveWorkbook.saveas(AA)
改为
objExcelApp.ActiveWorkbook.saveas(AA,43) &&Excel5.0格式,Excel97-2003
即可解决你的问题
所以此问题与VFP无关,是Excel另存为ActiveWorkbook.saveas()中第二个参数的问题
以下为测试代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | Create Cursor t1 (abc i)
For i=1 To 80000
Insert Into t1 Values (i)
Endfor
Copy To d:\test_a.Xls Type Xl5
Local objExcelApp
objExcelApp=Createobject( "excel.application" )
objExcelApp.Visible=.F.
objExcelApp.DisplayAlerts=.F.
Filename= "d:\test_a.xls"
objExcelApp.workbooks.Open(Filename)
AA= "d:\test_b.xls"
objExcelApp.ActiveWorkbook.SaveAs(AA,43)
objExcelApp.Quit
Release objExcelApp
|
谢谢,明天给您加分哈!
问题解决了。
估计是我OFFICE2007的问题。
我卸载了2007重装上2003,就可以了。
2007时的错误截图如下,不知谁能解决一下2007的问题。
在2007,录制一个宏,另存为一个EXCEL,然后查看这个宏代码,看看第二个参数是什么。
即可知道常量值。
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请
点击举报。