VB.Net – 缓慢读取Excel文件中的数据

我一直在试图写一个可以从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 

您应该考虑到COM技术本身就很慢。 您需要尽量减less方法调用的数量,逐个单元格会非常慢,也许按范围。

你也可以考虑一个不涉及COM的解决scheme。