分享

VFP还是超过16384条记录导入Excel的问题

 昵称10096004 2014-11-27
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()中第二个参数的问题

以下为测试代码

Visual Basic code
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,然后查看这个宏代码,看看第二个参数是什么。
即可知道常量值。

 

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多