请教一个导出电子表格的功能的实现,我想了解一下将一个表格中的内容导出成电子表格,大家是如何实现的.有以下几种方法,这只是我目前想到的,我想请大家说说哪种比较好,大家是如何做的.有没有更好的实现方法.
1.将一个记录集定义成窗体级的对象,一经打开,便将内容显示在表格中,如果导出电子表格时,真接将这个记录集导出就可以了.这种方法我认为不好之处就是要定义一个窗体级的对象.自已感觉不如定义成过程级(即按钮级的)更好一些.可是定义成过程级时,导出电子表格时还要重新生成记录集呀.
2.将记录集定义成过程级对象,[即在一个按钮中定义并实例化,然后显示在表格中],需要导出电子表格时,根据条件重新生成记录集.然后将这个记录集导出为excel,感觉比较麻烦,因为每次导出电子表格时就要重新生成记录集.[可是如果想不重新生成的话,那只有把记录集定义成窗体级的才行,这就是第一种方法了.]
3.导出时,不是根据记录集,而是根据msflexgrid中的单元格,用循环的方法一个一个的导出.这种操作避免了记录集,可以直接将显示的内容导出,可是感觉这种方法速度太慢了.表格小点还好,如果有几千条记录,那速度就有问题了.请大家指教,我应该用哪种方法呀?

解决方案 »

  1.   

    楼主,我用的是你的第三条,数据不是很多,以前导过几万条的也是用的第三条: For i = 1 To 30xlSheet.Cells(i + 1, 1) = MSFlexGrid1.TextMatrix(i, 0)
    xlSheet.Cells(i + 1, 2) = MSFlexGrid1.TextMatrix(i, 1)
    xlSheet.Cells(i + 1, 3) = MSFlexGrid1.TextMatrix(i, 2)
    xlSheet.Cells(i + 1, 4) = MSFlexGrid1.TextMatrix(i, 3)
    Next i
    简单方便,你说的那两条,看不懂:)——呵呵
      

  2.   

    第三条其实并不慢,楼上这位和楼主之所以慢,是因为你们每读一个单元格就操作一次EXCEL对象,那当然就慢啦,快速的方法应该是直接导出到文件,然后再调用EXCEL打开。
    直接导出到EXCEL可以识别的文件的最简单的方法是导出为CSV文件。
    这种文件的特点是:文本格式,文本行对应EXCEL行,字段以逗号隔开,如果内容中有逗号,用双引号包含,如果内容中有双引号,将每个双引号用一对双引号包含(和VB字符串处理双引号一样)
    楼主不妨看看网络上关于CSV文件格式的说明。
      

  3.   

    第三条其实并不慢,楼上这位和楼主之所以慢,是因为你们每读一个单元格就操作一次EXCEL对象,那当然就慢啦,快速的方法应该是直接导出到文件,然后再调用EXCEL打开。
    直接导出到EXCEL可以识别的文件的最简单的方法是导出为CSV文件。
    --------------------
    如何可以导出为csv文件呀?请教一下.