当使用vb读取excel中大量数据时,比如几十万,如果使用cells方法逐个读取则会非常慢(几分钟到十几分钟)。网上提供的解决方法大多是让excel文件另存为csv格式。但是当excel文件很多时这样做也会非常麻烦。使用vba宏的方法就快很多(一到两秒钟),当然也存在批量处理的问题。为什么vba宏移植到vb中就不行了呢?网上说是接口的问题。就在放弃时突然找到一种方法,试了一下效果vba一样快,关键的是vb可以批量处理,避免了vba宏和逐个另存为的麻烦。而且大数据文件使用excel2003版存在数量限制,而excel2007以上版本对vba的支持度不好(至少不够方便、稳定)。因此在vb中处理这个问题很有必要。下面说一下解决措施,其实非常简单,就一条关键代码:
首先引用Microsoft excel11.0 Object Library。
Private Sub Command1_Click()
Dim xlsApp
As Excel.Application
Dim xlsBook
As Excel.Workbook
Dim tmppath
As String
Dim data(1
To 256, 1 To 900) As Single
Dim datatmp
As Variant
Dim i As
Long, j As Long
首先引用Microsoft excel11.0 Object Library。
Private Sub Command1_Click()
