国产探花免费观看_亚洲丰满少妇自慰呻吟_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ā)表
主站蜘蛛池模板: 临安市| 福鼎市| 邳州市| 永寿县| 鄢陵县| 灌云县| 昌邑市| 河间市| 崇明县| 出国| 周口市| 漳平市| 惠水县| 饶平县| 天台县| 江口县| 贵阳市| 广宁县| 永胜县| 仲巴县| 伊宁市| 介休市| 榆中县| 金沙县| 新密市| 宜章县| 兰西县| 曲松县| 三亚市| 巩留县| 舒兰市| 江安县| 甘肃省| 青河县| 清河县| 三明市| 巴彦县| 满洲里市| 太原市| 象州县| 务川|