| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 3808 人关注过本帖
标题:导出EXCEL表时的粘贴问题
只看楼主 加入收藏
laowan001
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:66
帖 子:1093
专家分:2690
注 册:2015-12-30
结帖率:97.3%
收藏
已结贴  问题点数:20 回复次数:30 
导出EXCEL表时的粘贴问题
运行环境:
Win10 64位,VFP9,EXCEL2016
使用方法:
打开需要导出的表

_vfp.DataToClip(,,3)
创建Excel工作簿
oExcel.activesheet.paste
执行到这一句时可能会出现两种提示
(1)Ole IDispatch 异常代码0 出自Microsofr Excel:不能取得类Worksheet 的 paste 属性
(2)Ole IDispatch 异常代码0 出自Microsofr Excel:无法粘贴数据
具体情况是,当时没有已经打开的Excel表,有时就可以正常执行完毕,有时就会出现上面的提示,并没有发现什么规律
有时出现的错误提示后,结束任务管理器中的EXCEL进程,然后再导出同样的数据就可以正常执行
导出的记录数多的时候出现这种情况的概率就高(只是概率高,还是有成功的时候),导出的数据通常在2-5W条记录
不知哪位大侠知道这其中的原委
先谢过各位

说明:没打算用VFP 的 COPY TO test.xls TYPE XL5,这个有记录数的限制,而且时间格式会变形
搜索更多相关主题的帖子: 提示 数据 EXCEL 导出 出现 
2021-08-25 09:56
XUFN
Rank: 2
等 级:论坛游民
威 望:4
帖 子:37
专家分:38
注 册:2009-1-18
收藏
得分:3 
我也碰到过有楼上类似的问题和疑惑,笨做法是电脑重启一次后就好了,再运行程序时没出现任何提示。怀疑跟Excel的版本有关,以前电脑里安装的是正版Excel2000,从来没出现过问题,但后来自从换了盗版的Excel2003后,同样的程序,偶尔会出现这个法粘贴失败的提示,后来尝试着优化代码,比如:
oExcel1.Cells(2,1).Select &&选择一个空白单元格自己复制自己粘贴,释放掉之前或当前的数据可能大的Copy值
oExcel1.Selection.Copy
oExcel1.ActiveSheet.Paste &&释放剪切板
后面代码再执行真正的数据复制和粘贴
但好像没用,电脑开机用过一段时间后,提示框还会出来(偶尔),电脑重新启动后就好了
2021-08-25 10:41
laowan001
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:66
帖 子:1093
专家分:2690
注 册:2015-12-30
收藏
得分:0 
回复 2楼 XUFN
是啊,问题挺顽固的
2021-08-25 10:49
厨师王德榜
Rank: 18Rank: 18Rank: 18Rank: 18Rank: 18
等 级:贵宾
威 望:199
帖 子:995
专家分:4966
注 册:2013-2-16
收藏
得分:3 
如果Excel的数据格式比较规范的话,可以考虑用Ado.Connection /RecordSet 这种机制
或者ODBC连接 + sql查询语句,获取数据,避开剪贴板.
2021-08-25 11:02
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:451
帖 子:10608
专家分:43190
注 册:2014-5-20
收藏
得分:3 
剪贴板是共享的吧,如果其他应用也正在使用就可能出现异常。
2021-08-25 11:11
xuminxz
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:贵宾
威 望:41
帖 子:766
专家分:2517
注 册:2011-5-8
收藏
得分:3 
如果数据比较多,建议用copy to xx csv、用中间库过渡一下,例如先导入到Access、 SQL Server、 orcale中,然后导出到Excel
注意导入时如没有csv可选择文本文件(不要用 copy to xx deli 到文本文件,那样没有字段名。)

dBase有人接盘了。
2021-08-25 14:34
laowan001
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:66
帖 子:1093
专家分:2690
注 册:2015-12-30
收藏
得分:0 
回复 4楼 厨师王德榜
这样的话修改量太大了,而且客户端还要安装相应的环境
2021-08-25 14:46
laowan001
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:66
帖 子:1093
专家分:2690
注 册:2015-12-30
收藏
得分:0 
回复 5楼 吹水佬
这个过程时间很短,而且测试的时候也没有其他影响剪贴板的操作
2021-08-25 14:47
laowan001
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:66
帖 子:1093
专家分:2690
注 册:2015-12-30
收藏
得分:0 
回复 6楼 xuminxz
copy to 有记录数限制啊
2021-08-25 14:48
xuminxz
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:贵宾
威 望:41
帖 子:766
专家分:2517
注 册:2011-5-8
收藏
得分:0 
回复 9楼 laowan001
复制到CSV文件没有限制。
1500000没有问题(不过excel 2016只有1000000多一点)

[此贴子已经被作者于2021-8-25 14:50编辑过]


dBase有人接盘了。
2021-08-25 14:49
快速回复:导出EXCEL表时的粘贴问题
数据加载中...
 
   



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

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