国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 學(xué)院 > 開(kāi)發(fā)設(shè)計(jì) > 正文

解決VB.net使用COM控件加載Excel文件速度慢的問(wèn)題

2019-11-11 00:39:47
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

先發(fā)一下第一版速度超級(jí)慢的代碼:

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("編號(hào)")        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這樣寫(xiě)的話,加載1w行的數(shù)據(jù)差不多要用半分多鐘的時(shí)間,還就三列而已,這速度簡(jiǎn)直不能忍受啊~網(wǎng)上翻了一下資料,有大神給出了解釋:

Excel.Range的Value屬性是Object的二維數(shù)組。于是我想,不去遍歷每個(gè)單元格,而是一次取得所要操作區(qū)域(Range)的Value屬性,對(duì)這個(gè)二維數(shù)組操作,最后再把這個(gè)二維數(shù)組賦回去,就大功能告成了。把后面循環(huán)的代碼段改成下面的寫(xiě)法,秒加載完成啊!

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


發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 图们市| 辽中县| 建宁县| 来安县| 汉川市| 洛扎县| 奈曼旗| 托克逊县| 临朐县| 龙岩市| 兴安盟| 开封市| 镇雄县| 焉耆| 鄱阳县| 通许县| 威海市| 瑞金市| 湘乡市| 文成县| 永德县| 连江县| 乃东县| 新竹县| 凤凰县| 阳高县| 莒南县| 泗阳县| 丹巴县| 墨玉县| 黑山县| 保靖县| 神农架林区| 辽阳市| 河北省| 通化市| 西畴县| 定西市| 苏尼特左旗| 修文县| 永和县|