读excel报表
一般来说读excel无非就是把excel文件看作数据库,把sheet看作表,把第一行看作字段。
但是现在我碰到一个复杂的excel报表,表上面是一些统计信息,下面才是表格,而且表头的数量和表头名不确定。就是说真正表格的开始是从第5行开始的,而且字段数和字段名未知
我现在的做法是用2层循环一个一个cell来读,问题是速度相当慢,不知道怎样才能快些。
请问谁有更快的办法。多谢!
[解决办法]
在 Excel 中,将整个数据区域选中,菜单“名称\插入\定义...”,添加一个任意名称比如“T”,那么“T”就可以作为一般的表名一样用 SELECT 语句进行查询。
[解决办法]
工程里面引用ADO,然后用下面的代码
Dim cn As ADODB.Connection
Dim rst As ADODB.Recordset
Set cn = New ADODB.Connection
With cn
.Provider = "Microsoft.Jet.OLEDB.4.0 "
.ConnectionString = "Data Source=C:\book1.xls; " & _
"Extended Properties=Excel 8.0; "
.Open
End With
Set rst = cn.Execute( "select * from [Sheet1$] ")
Dim i As Integer
rst.MoveFirst
Do While Not rst.EOF
For i = 0 To rst.Fields.Count - 1
Debug.Print rst(i);
Next
Debug.Print
rst.MoveNext
Loop
[解决办法]
详细的可以看msdn:
http://support.microsoft.com/kb/257819/zh-cn
[解决办法]
看楼主意思,是想进行算法优化?
那么你得把你的EXCEL表格与你的代码弄上来看看才好/....
仅仅是这样描述一下,不能完全了解