打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
VFP还是超过16384条记录导入Excel的问题
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,然后查看这个宏代码,看看第二个参数是什么。
即可知道常量值。

 

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
在VFP中直接来控制Excel
Use VBA SaveAs in Excel 2007-2010
VBA:如何把EXCEL导出为txt ?
VFP代码收藏
VBA简单入门23:操作(新建、保存、复制、删除、拆分)工作簿
我有一段高手给的EXCEL 自动保存的代码,如何让它保存时去掉VBA
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服