macran 发表于 2015-6-4 16:21:55

LISTVIEW 导出到 EXCEL

listview 导出到EXCEL (可以选择路径,输入文件名)一般怎么做效率高,我的数据量很大。
目前我是这么做的,
先调用FileSaveDialog 得到想要保存的文件完整路径,如果取消则退出,
判断完整路径是否包含文件后缀,如果没有则自动添加。
新建EXCEL文件,
_GUICtrlListView_GetItemTextString读取LISTVIEW中的数据
循环
excel.cells(x,y).value=XXX
再_excelbooksaveas成刚才的完整路径,强制覆盖

感觉效率很低。

kevinch 发表于 2015-6-4 19:14:59

写到数组里再写入excel表里,注意行与列与excel是相反的

auto 发表于 2015-6-5 21:12:56

能否纯后台写入,那个数组写入速度还行,不过还是用excel来写入的(可以隐藏界面),
有没有组件直接生成XLS可XLSX文件

sh1536 发表于 2015-6-7 15:22:23

我以前也是用数组,感觉还行

kevinch 发表于 2015-6-7 20:50:53

可以生成 csv文件啊,然后直接用excel就可以打开了

ap112 发表于 2015-6-9 09:12:43

回复 2# kevinch


    我感觉数据量很大的时候,用数组比较浪费时间,可以将读取出来的数据放到剪贴板里直接粘贴到Excel快多了,之前测试20W行数据,每行100列,用数组好像要十来分钟,剪切板大概要一分钟左右,不过要注意剪贴板容量似乎有限。数据量偏大时可以分多次粘贴

kevinch 发表于 2015-6-9 21:16:07

回复 6# ap112
是有这个情况,所以太多数据的一般直接生成标准csv文件,csv文件就是文本文件,生成好了之后再用excel打开另存为excel文件,曲线一下吧

auto 发表于 2015-6-11 19:59:16

本帖最后由 auto 于 2015-6-11 20:05 编辑

回复 7# kevinch


    CSV也有局限性,不带格式,纯文本,还要注意逗号问题,
   也不带压缩,在大数据的情况下,文件给变的很大。
   如,我导出的CSV有100M,多数可以通过RAR或XLS压缩到10-20M,
   导出不带格式,有些如果标记为字符型的数字会科学记数法,例如身份证号码等。

还有一类型CSV的XML或HTML记录,也是纯文本,可以带格式。不过数据大存储也是个问题

一直在找纯后台的操作EXECL的文件存储的办法

kevinch 发表于 2015-6-11 20:10:53

超过15位的数字,前面加个单引号试下
页: [1]
查看完整版本: LISTVIEW 导出到 EXCEL