我一直在試圖編寫一個可以從Excel文件中讀取數據的程序。經過幾個小時的嘗試後,終於開始工作了。但是,我注意到它的工作非常緩慢,特別是涉及到大量的行和列時。嘗試在我的其他電腦上檢查,也許這是一個PC問題,但不幸的是它對其他人來說確實很慢。VB.Net - 緩慢讀取Excel文件中的數據
有什麼我需要改變或刪除或添加?
這裏是我的代碼:
Public Sub LoopExcel()
Dim colfrom As Integer = Asc(txtColFrom.Text)
Dim colto As Integer = Asc(txtColTo.Text)
Dim rowfrom As Integer = Integer.Parse(txtRowFrom.Text)
Dim rowto As Integer = Integer.Parse(txtRowTo.Text)
For rowindex = rowfrom To rowto
For colindex = colfrom To colto
Dim str As String = OpenExcelGetData(txtFileName.Text, rowindex, Convert.ToChar(colindex)).ToString
Console.WriteLine(str)
Next
Next
End Sub
Public Function OpenExcelGetData(ByVal fileNameAndPath As String, ByVal rowIndex As Integer, ByVal columnIndex As String) As Object
Dim oExcelApp As New Excel.ApplicationClass
Dim oExcelBook As Excel.Workbook
Dim oExcelSheet As Excel.Worksheet
Dim sheetNumber As Integer = 1 '1-based array
Dim oData As Object = Nothing
Try
oExcelBook = oExcelApp.Workbooks.Open(fileNameAndPath)
oExcelSheet = CType(oExcelBook.Worksheets(sheetNumber), Excel.Worksheet)
'Read data
Dim excelRange As String = columnIndex & rowIndex.ToString()
oData = oExcelSheet.Range(excelRange).Value
Catch exp As COMException
MessageBox.Show(exp.Message)
Catch exp As Exception
MessageBox.Show(exp.Message)
End Try
Return oData
End Function
也許你應該發佈你的問題[這裏](https://codereview.stackexchange.com/),它是一個專門的代碼審查網站。 – Mrig
[這裏](https://stackoverflow.com/a/16051/468973)是使用自動化的替代方案。 – Magnus