目前正在进行的项目中,碰到一个难题:
那就是msflexgrid与Excel数据的相互导入过程中,速度慢的问题。
如果数据量不是很大的话,采用网上常举例的的方式还可以,但是一旦数据量很大,打到几万甚至几十万的时候,那个速度简直是慢得离谱,你简直不敢相信这是电脑在做事情。
首先讲讲传统方案:
1、
For i = 1 To TotalCount
MSFlexGrid1.Col = j
‘下面或者MSFlexGrid1.TextMatrix(i, j)
xlsheet.Range(Chr(65 + j) + CStr(i + 2)).Value = MSFlexGrid1.Text
Next j
Next I
这个就是我讲的最慢的方法。
处理超过100K的数据用了十几秒钟,慢!太慢!实在是太慢了!
昨天项目经理找我聊了一下清况,我将我碰到的问题告诉她,她很奇怪(她不懂VB),这里已经完全是电脑在处理数据的啊,怎么会那么慢呢?
她还尝试用我已经导出的数据经过在Excel和Textbook之间相互复制粘贴来证明The speed of computer.
那确实相当的快,这个马上给了我一个启发:剪贴板。
对,我所说的快的处理方法就是采用剪贴板。
2、
Clipboard.Clear
End With
这下子速度快多了:Ctrl+A, Ctrl+C, Ctrl+V, OK!搞定了!快吧?!