首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VB >

读excel报表,该如何解决

2012-02-22 
读excel报表一般来说读excel无非就是把excel文件看作数据库,把sheet看作表,把第一行看作字段。但是现在我碰

读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表格与你的代码弄上来看看才好/....

仅仅是这样描述一下,不能完全了解

热点排行