| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2339 人关注过本帖, 1 人收藏
标题:vfp调用excel生成报表,需填写大量数据,有什么办法提高效率?
只看楼主 加入收藏
rola_zhang
Rank: 2
等 级:论坛游民
帖 子:12
专家分:11
注 册:2009-11-13
收藏
得分:0 
尝试了两天,有了较好的结果。用全局变量_CLIPTEXT来实现VFP和Excel之间的拷贝和粘贴,可以实现大批量数据赋值。最初,我用_VFP.DataToClip来实现,其赋值数据始终带着字段名,用起来很不爽,后来输出全局变量_CLIPTEXT(_VFP.DataToClip复制的数据保存在这个变量中),发现用_VFP.DataToClip复制的数据其结构非常简单,为了避免多余的字段名这行数据,于是我就没有用_VFP.DataToClip,自己直接填写_CLIPTEXT,出人意料的是效率居然比_VFP.DataToClip还高,我想可能是_VFP.DataToClip里有其他一些参数的判断语句(如delimiter类型).输出数据的填写到_CLIPTEXT的格式如下:'aaaaa'+chr(9)+'bbbbb'+chr(9)+chr(9)+'ccccc'+chr(13)+chr(10)。chr(9)是Tab的值,表示列delimiter,chr(9)+chr(9)表示中间这列输出为'',chr(13)+chr(10)表示回车换行。这样一个数据表示填写某行的4个单元格。如果只输出一行,chr(13)+chr(10)可以不加。同理只需按照这个格式把多行的数据组成一串输出即可。我的报表性能通过这种方式,性能提高了300%,真是爽啊!

另外,Select/Merge等Excel语句尽量少使用,可以合并成成一条的语句表示的,尽量合并。

顺便提醒,这种方式不适合用在已经合并的单元格,如果使用,一定要按照基本单元格来组成数据输出,且合并单元格里的每个基本列必须填写数据(空数据也认可),输出的同时会自动拆分那些已经合并的单元格。
2009-11-17 17:14
快速回复:vfp调用excel生成报表,需填写大量数据,有什么办法提高效率?
数据加载中...
 
   



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

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