首页 > 学院 > 开发设计 > 正文

解决VB.net使用COM控件加载Excel文件速度慢的问题

2019-11-11 02:21:59
字体:
来源:转载
供稿:网友

先发一下第一版速度超级慢的代码:

Dim dt As New DataTable        Dim ExcelApp As New Excel.application        Dim WorkBook As Excel.Workbook        Dim WorkSheet As Excel.Worksheet        Dim dt As New DataTable        dt.Columns.Add("编号")        dt.Columns.Add("地址码")        dt.Columns.Add("姓名")        For i As Integer = 1 To 10000            dt.Rows.Add({i, WorkSheet.Cells(i + 1, 3).value, WorkSheet.Cells(i + 1, 4).value})        Next这样写的话,加载1w行的数据差不多要用半分多钟的时间,还就三列而已,这速度简直不能忍受啊~网上翻了一下资料,有大神给出了解释:

Excel.Range的Value属性是Object的二维数组。于是我想,不去遍历每个单元格,而是一次取得所要操作区域(Range)的Value属性,对这个二维数组操作,最后再把这个二维数组赋回去,就大功能告成了。把后面循环的代码段改成下面的写法,秒加载完成啊!

Dim ary As Object(,) = WorkSheet.Range("A1:E10001").Value        For i As Integer = 1 To 10000            dt.Rows.Add({i, ary(i + 1, 3), ary(i + 1, 4)})        Next


上一篇:poj1005

下一篇:九数组分数

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表