标题:vfp调用excel生成报表,需填写大量数据,有什么办法提高效率?
只看楼主
rola_zhang
Rank: 2
等 级:论坛游民
帖 子:12
专家分:11
注 册:2009-11-13
结帖率:100%
已结贴  问题点数:20 回复次数:10 
vfp调用excel生成报表,需填写大量数据,有什么办法提高效率?
现手中有个月报表的数据量比较大,A4纸输出有400页,vfp调用excel生成报表时间需5分钟左右,

主要时间用在循环为每个单元格赋值,效率非常低。有没有办法可以同时给多个单元格赋值,值是不一定相同的!

我在VBA里找到的方法是oExcel.Range('&achXYList')=array(1,2,3)

vfp里数组这样给Range赋值是无效的.

各位大侠,有没有好的解决办法!

先行谢过了!!!
搜索更多相关主题的帖子: 办法 数据 效率 excel vfp 
2009-11-13 14:01
hu9jj
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:红土地
等 级:贵宾
威 望:396
帖 子:11713
专家分:43267
注 册:2006-5-13
得分:0 
关注中!

活到老,学到老! http://www. E-mail:hu-jj@
2009-11-13 15:23
qjbzjp
Rank: 13Rank: 13Rank: 13Rank: 13
来 自:尧的故乡
等 级:贵宾
威 望:48
帖 子:1914
专家分:4397
注 册:2007-3-14
得分:5 
我是先建立一个对应于Excel表的“汇总表.dbf”,所有计算、循环赋值处理好后再直接copy to …… xl5 ,在Excel表中没有过多的赋值。

相互学习,互相交流,共同提高。
2009-11-14 17:08
rola_zhang
Rank: 2
等 级:论坛游民
帖 子:12
专家分:11
注 册:2009-11-13
得分:0 
楼上的方法仅适用于一般的二维报表,而且事后需对报表格式作细节方面的改进。对于复杂报表还是解决不了问题
2009-11-14 21:12
rola_zhang
Rank: 2
等 级:论坛游民
帖 子:12
专家分:11
注 册:2009-11-13
得分:0 
还是谢谢3楼的朋友,期待更完善的解决方法!本人问题中提到的报表就是分组的复杂报表格式
2009-11-14 21:14
Tiger5392
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:88
帖 子:2775
专家分:2237
注 册:2006-5-17
得分:5 
VFP调用Excel的时候让Excel不可见,也能提高效率。

感言:学以致用。 博客:http://www./blog/user14/65009/index.shtml email:Tiger5392@
2009-11-14 21:50
sd_tysd
Rank: 5Rank: 5
等 级:职业侠客
威 望:1
帖 子:81
专家分:319
注 册:2009-7-23
得分:10 
回复 楼主 rola_zhang
excel 可以直接 同时打开《dbf》文件与excel打印表格,excel 打印表格可以只做成一页,与《dbf》连接 就可以直接分页打印《dbf》数据。
但是excel打印表格与《dbf》连接时要用 indirect()函数来解决换页。如:INDIRECT("dbf文件名!列"&页数*页行数-页行数+1)  。(页行数+1) 可以与打印表格当前行结合运算
桌面.rar (2.23 KB)


[ 本帖最后由 sd_tysd 于 2009-11-15 11:39 编辑 ]
2009-11-15 10:48
rola_zhang
Rank: 2
等 级:论坛游民
帖 子:12
专家分:11
注 册:2009-11-13
得分:0 
回复 6楼 Tiger5392
以下是引用Tiger5392在2009-11-14 21:50:46的发言:

VFP调用Excel的时候让Excel不可见,也能提高效率。

已经不可见

[ 本帖最后由 rola_zhang 于 2009-11-15 21:29 编辑 ]
2009-11-15 21:25
rola_zhang
Rank: 2
等 级:论坛游民
帖 子:12
专家分:11
注 册:2009-11-13
得分:0 
以下是引用sd_tysd在2009-11-15 10:48:32的发言:

excel 可以直接 同时打开《dbf》文件与excel打印表格,excel 打印表格可以只做成一页,与《dbf》连接 就可以直接分页打印《dbf》数据。
但是excel打印表格与《dbf》连接时要用 indirect()函数来解决换页。如:INDIRE ...

这样也只能针对一个dbf来实现,而且无法做到先全部预览再打印
2009-11-15 21:28
rola_zhang
Rank: 2
等 级:论坛游民
帖 子:12
专家分:11
注 册:2009-11-13
得分:0 
今天想到一个办法,初步尝试了一下,方法可行,就是不知道性能会有多大提升!有了结果,一定上来与大家分享!谢谢大家的支持
2009-11-15 21:33



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




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

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