跳過到頁腳內容
與其他組件的比較

VB.NET 將Excel文件讀取到陣列:IronXL vs Microsoft Interop

在.NET中將 Excel 資料讀入數組需要載入工作簿、選擇工作表、遍歷行和列,並將每個儲存格的值儲存在二維數組中。 使用IronXL,只需幾行程式碼即可完成此操作,無需安裝 Microsoft Office。安裝NuGet包,呼叫 WorkBook.Load,取得 Range,然後循環遍歷其 Rows 集合來填入陣列。

立即開始免費試用,探索IronXL如何簡化 Visual Studio 專案中的 Excel 自動化。

這些解決方案乍看之下有何異同?

IronXL與 Microsoft Office Interop-VB .NET陣列操作的功能比較
特徵 IronXL Microsoft Office Interop
需安裝辦公室軟體 是的
NuGet安裝 是的——一個包裹 否 -- COM 參考
伺服器/CI 環境支援 是的 有限的
COM物件生命週期管理 無需 必需的
支援的格式 XLSX、XLS、CSV、TSV、JSON XLSX、XLS(限 Excel)
類型安全的 API 是的 部分 -- 後期 COM
Linux/macOS 支持 是的(.NET 6+)
例外處理風格 標準.NET異常 COM 異常 + 手動清理

如何在.NET專案中安裝IronXL ?

將IronXL新增至任何.NET專案的最快方法是透過NuGet套件管理器。 在 Visual Studio 中開啟程式包管理器控制台並執行:

Install-Package IronXl.Excel
Install-Package IronXl.Excel
SHELL

或者,使用.NET CLI:

dotnet add package IronXl.Excel
dotnet add package IronXl.Excel
SHELL

安裝完成後,在 VB .NET模組的頂部新增 Imports IronXL。 無需安裝 Office—— IronXL完全透過其自身的解析引擎讀取和寫入 Excel 檔案。

對於面向舊框架或需要特定版本鎖定的項目, IronXL NuGet頁面列出了每個已發布的版本。 IronXL文件提供了 Visual Studio 2019、2022 和.NET CLI 的安裝指南。

開發人員如何使用IronXL將 Excel 資料讀入陣列?

IronXL提供了一個簡潔的 API,用於開啟工作簿、選擇範圍和遍歷儲存格值,而無需本機安裝 Office。 WorkBook.Load 方法接受一個檔案路徑,並傳回一個 WorkBook 對象,該物件公開所有工作表。

Imports IronXL

Module ReadExcelToArray
    Sub Main()
        ' Load the Excel workbook from a file path
        Dim workbook As WorkBook = WorkBook.Load("SalesData.xlsx")

        ' Access the first worksheet in the workbook
        Dim sheet As WorkSheet = workbook.DefaultWorkSheet

        ' Define the cell range to extract
        Dim dataRange As IronXl.Range = sheet.GetRange("A1:D5")

        ' Determine array dimensions from the range
        Dim rowCount As Integer = dataRange.Rows.Count
        Dim colCount As Integer = dataRange.Columns.Count
        Dim salesArray(rowCount - 1, colCount - 1) As String

        ' Populate the two-dimensional array from cell values
        Dim rowIndex As Integer = 0
        For Each row As RangeRow In dataRange.Rows
            Dim colIndex As Integer = 0
            For Each cell As Cell In row
                salesArray(rowIndex, colIndex) = cell.StringValue
                colIndex += 1
            Next
            rowIndex += 1
        Next

        ' Print each row to the console
        Console.WriteLine("Data loaded into array:")
        For i As Integer = 0 To rowCount - 1
            For j As Integer = 0 To colCount - 1
                Console.Write(salesArray(i, j) & vbTab)
            Next
            Console.WriteLine()
        Next
    End Sub
End Module
Imports IronXL

Module ReadExcelToArray
    Sub Main()
        ' Load the Excel workbook from a file path
        Dim workbook As WorkBook = WorkBook.Load("SalesData.xlsx")

        ' Access the first worksheet in the workbook
        Dim sheet As WorkSheet = workbook.DefaultWorkSheet

        ' Define the cell range to extract
        Dim dataRange As IronXl.Range = sheet.GetRange("A1:D5")

        ' Determine array dimensions from the range
        Dim rowCount As Integer = dataRange.Rows.Count
        Dim colCount As Integer = dataRange.Columns.Count
        Dim salesArray(rowCount - 1, colCount - 1) As String

        ' Populate the two-dimensional array from cell values
        Dim rowIndex As Integer = 0
        For Each row As RangeRow In dataRange.Rows
            Dim colIndex As Integer = 0
            For Each cell As Cell In row
                salesArray(rowIndex, colIndex) = cell.StringValue
                colIndex += 1
            Next
            rowIndex += 1
        Next

        ' Print each row to the console
        Console.WriteLine("Data loaded into array:")
        For i As Integer = 0 To rowCount - 1
            For j As Integer = 0 To colCount - 1
                Console.Write(salesArray(i, j) & vbTab)
            Next
            Console.WriteLine()
        Next
    End Sub
End Module
$vbLabelText   $csharpLabel

了解工作簿和工作表對象

WorkBook.Load 支援 XLSX、XLS、CSV 和 TSV 檔案。 載入完成後,workbook.DefaultWorkSheet 傳回第一個工作表。 您也可以透過名稱存取工作表(workbook.WorkSheets(0))。

GetRange("A1:D5") 呼叫傳回一個 IronXl.Range,該 RowsColumns 集合。 每個 RangeRow 都會迭代 Cell 對象,而 cell.StringValue 則會返回顯示字串,無論底層單元格類型如何。

如何處理輸入的儲存格值?

IronXL儲存格除了 StringValue 之外,也公開類型化屬性:

  • cell.IntValue -- 將儲存格解析為整數
  • cell.DoubleValue -- 將單元格解析為雙精度浮點數
  • cell.DateTimeValue -- 解析日期格式的儲存格
  • cell.IsFormula -- 表示儲存格是否包含公式

對於財務數據,將數組聲明為 Double,並直接賦值給 cell.DoubleValue。 這樣可以避免在下游處理過程中進行字串到數字的轉換。

Imports IronXL

Module ReadExcelToDoubleArray
    Sub Main()
        Dim workbook As WorkBook = WorkBook.Load("Revenue.xlsx")
        Dim sheet As WorkSheet = workbook.DefaultWorkSheet
        Dim dataRange As IronXl.Range = sheet.GetRange("B2:E10")

        Dim rowCount As Integer = dataRange.Rows.Count
        Dim colCount As Integer = dataRange.Columns.Count
        Dim revenueArray(rowCount - 1, colCount - 1) As Double

        Dim rowIndex As Integer = 0
        For Each row As RangeRow In dataRange.Rows
            Dim colIndex As Integer = 0
            For Each cell As Cell In row
                revenueArray(rowIndex, colIndex) = cell.DoubleValue
                colIndex += 1
            Next
            rowIndex += 1
        Next

        ' Calculate column totals
        For j As Integer = 0 To colCount - 1
            Dim total As Double = 0
            For i As Integer = 0 To rowCount - 1
                total += revenueArray(i, j)
            Next
            Console.WriteLine($"Column {j + 1} total: {total:C}")
        Next
    End Sub
End Module
Imports IronXL

Module ReadExcelToDoubleArray
    Sub Main()
        Dim workbook As WorkBook = WorkBook.Load("Revenue.xlsx")
        Dim sheet As WorkSheet = workbook.DefaultWorkSheet
        Dim dataRange As IronXl.Range = sheet.GetRange("B2:E10")

        Dim rowCount As Integer = dataRange.Rows.Count
        Dim colCount As Integer = dataRange.Columns.Count
        Dim revenueArray(rowCount - 1, colCount - 1) As Double

        Dim rowIndex As Integer = 0
        For Each row As RangeRow In dataRange.Rows
            Dim colIndex As Integer = 0
            For Each cell As Cell In row
                revenueArray(rowIndex, colIndex) = cell.DoubleValue
                colIndex += 1
            Next
            rowIndex += 1
        Next

        ' Calculate column totals
        For j As Integer = 0 To colCount - 1
            Dim total As Double = 0
            For i As Integer = 0 To rowCount - 1
                total += revenueArray(i, j)
            Next
            Console.WriteLine($"Column {j + 1} total: {total:C}")
        Next
    End Sub
End Module
$vbLabelText   $csharpLabel

輸出

VB .NET將 Excel 檔案讀取到陣列: IronXL與 Microsoft Interop 比較:圖 1 - IronXL與 Office Excel 在 VB .NET將 Excel 檔案讀取到陣列方面的比較

此程式碼範例示範了 IronXL 直覺的 API。 WorkBook.Load 方法直接從您指定的資料夾開啟 Excel 文件,而 Range 物件提供對 Excel 電子表格中特定儲存格區域的存取。 與傳統的 VBA 巨集不同,這種方法是完全類型安全的,並且整合到.NET生態系統中。

立即開始在您的項目中使用 IronXL 並免費試用。

第一步:
green arrow pointer

什麼是傳統的 Microsoft Office 互通方法?

Microsoft Office Interop 依賴 COM 自動化與 Excel 應用程式實例連線。 若要在 Visual Studio 中進行此設置,請導航至"專案"選單,選擇"新增參考",然後在 COM 標籤下搜尋 Microsoft Excel 物件庫。 運行該程式碼的每台電腦上都必須安裝本機 Excel。

Imports Microsoft.Office.Interop.Excel

Module InteropExcelArray
    Sub Main()
        Dim excelApp As New Application()
        Dim workbooks As Workbooks = excelApp.Workbooks
        Dim workbook As Workbook = 不thing
        Dim sheet As Worksheet = 不thing

        Try
            ' Suppress screen updates during processing
            excelApp.ScreenUpdating = False

            ' Open the workbook by full file path
            workbook = workbooks.Open("C:\Data\SalesData.xlsx")

            ' Reference the first worksheet
            sheet = CType(workbook.Sheets(1), Worksheet)

            ' Define a range and pull values into an object array
            Dim dataRange As Range = sheet.Range("A1", "D5")
            Dim values(,) As Object = CType(dataRange.Value, Object(,))

            ' COM arrays are 1-based, so enumerate from index 1
            Dim rows As Integer = values.GetUpperBound(0)
            Dim columns As Integer = values.GetUpperBound(1)

            For i As Integer = 1 To rows
                Dim line As String = ""
                For j As Integer = 1 To columns
                    line &= values(i, j).ToString() & vbTab
                Next
                Console.WriteLine(line)
            Next

        Catch ex As Exception
            Console.WriteLine("Error: " & ex.Message)

        Finally
            ' Release COM objects to prevent orphaned Excel processes
            If sheet Is不t 不thing Then
                System.Runtime.InteropServices.Marshal.ReleaseComObject(sheet)
            End If
            If workbook Is不t 不thing Then
                workbook.Close(False)
                System.Runtime.InteropServices.Marshal.ReleaseComObject(workbook)
            End If
            excelApp.Quit()
            System.Runtime.InteropServices.Marshal.ReleaseComObject(excelApp)
        End Try
    End Sub
End Module
Imports Microsoft.Office.Interop.Excel

Module InteropExcelArray
    Sub Main()
        Dim excelApp As New Application()
        Dim workbooks As Workbooks = excelApp.Workbooks
        Dim workbook As Workbook = 不thing
        Dim sheet As Worksheet = 不thing

        Try
            ' Suppress screen updates during processing
            excelApp.ScreenUpdating = False

            ' Open the workbook by full file path
            workbook = workbooks.Open("C:\Data\SalesData.xlsx")

            ' Reference the first worksheet
            sheet = CType(workbook.Sheets(1), Worksheet)

            ' Define a range and pull values into an object array
            Dim dataRange As Range = sheet.Range("A1", "D5")
            Dim values(,) As Object = CType(dataRange.Value, Object(,))

            ' COM arrays are 1-based, so enumerate from index 1
            Dim rows As Integer = values.GetUpperBound(0)
            Dim columns As Integer = values.GetUpperBound(1)

            For i As Integer = 1 To rows
                Dim line As String = ""
                For j As Integer = 1 To columns
                    line &= values(i, j).ToString() & vbTab
                Next
                Console.WriteLine(line)
            Next

        Catch ex As Exception
            Console.WriteLine("Error: " & ex.Message)

        Finally
            ' Release COM objects to prevent orphaned Excel processes
            If sheet Is不t 不thing Then
                System.Runtime.InteropServices.Marshal.ReleaseComObject(sheet)
            End If
            If workbook Is不t 不thing Then
                workbook.Close(False)
                System.Runtime.InteropServices.Marshal.ReleaseComObject(workbook)
            End If
            excelApp.Quit()
            System.Runtime.InteropServices.Marshal.ReleaseComObject(excelApp)
        End Try
    End Sub
End Module
$vbLabelText   $csharpLabel

為什麼 COM 物件管理如此重要?

互通方法需要格外注意 COM 物件生命週期管理。 Excel 應用程式傳回的每個物件(工作簿、工作表、區域和儲存格)都包含一個參考計數的 COM 指標。 如果未能對每個物件呼叫 Marshal.ReleaseComObject,則 EXCEL.EXE 進程會在背景靜默運作。

在伺服器上,孤立進程會隨著時間的推移而不斷積累,最終耗盡可用記憶體或檔案句柄。 上面的 Try...Finally 模式是最低限度的安全方法,但許多企業程式碼庫會新增一個專門的 COM 清理實用程式來處理巢狀物件圖。

Interop 陣列索引約定也與標準 VB .NET陣列不同:基於 COM 的陣列從索引 1 開始,而不是 0。這意味著任何行或列循環都必須考慮差一的差異,這是運行時錯誤和資料截斷錯誤的常見來源。

哪種解決方案能提供更好的開發者體驗?

在評估這些方法在生產應用中的可行性時,有幾個因素顯示IronXL是更優的選擇:

部署簡單性: IronXL透過單一NuGet套件進行安裝,而 Interop 需要複雜的環境配置。 當您的程式需要在建置伺服器或雲端函數上處理 XLSX 文件,而該伺服器上不存在使用者會話時,這一點就非常重要了。

程式碼可維護性:透過IronXL讀取資料表可以保持程式碼簡潔易讀。 行數和列數是一等屬性。 使用 Interop,您可以計算索引為 1 的 COM 陣列的上限,並手動轉換後期邊界 Object 值。

格式彈性:除了 XLSX 等標準 Excel 工作簿格式外, IronXL還原生支援 CSV 解析,這在測試資料以多種格式到達時非常有用。 該庫還可以建立新的工作簿文件,並以同樣簡單的方式將值寫回儲存格。 請參閱IronXL格式指南以取得完整清單。

錯誤處理: IronXL適用標準的.NET異常模式,讓錯誤復原變得簡單。 基於 COM 的例外狀況需要額外的處理邏輯,如果管理不當,可能會導致 Excel 執行個體持續運作。

跨平台支援: IronXL可透過.NET 6 及更高版本在 Linux 和 macOS 上運作。 Interop 僅適用於 Windows 系統,因為它依賴 Win32 COM 子系統。

.NET中數組讀取的效能與維護權衡
標準 IronXL Microsoft Interop
基本數組讀取的程式碼行數 約20 40歲以上
需要手動清理 COM 對象 是的
無需安裝 Excel 即可運行 是的
可在 Docker/CI 管線中運行 是的
數組索引約定 基於 0 的(.NET Standard) 基於 1 的(COM 標準)

如何在.NET中使用動態Excel區域?

生產電子表格的行數通常不是固定的。 IronXL在每個工作表上提供 UsedRange 屬性,該屬性傳回所有非空白儲存格的邊界矩形。 你可以使用這個來代替硬編碼的範圍字串。

Imports IronXL

Module DynamicRangeExample
    Sub Main()
        Dim workbook As WorkBook = WorkBook.Load("DynamicData.xlsx")
        Dim sheet As WorkSheet = workbook.DefaultWorkSheet

        ' Get the bounding range of all populated cells
        Dim usedRange As IronXl.Range = sheet.UsedRange

        Dim rowCount As Integer = usedRange.Rows.Count
        Dim colCount As Integer = usedRange.Columns.Count
        Dim dynamicArray(rowCount - 1, colCount - 1) As String

        Dim rowIndex As Integer = 0
        For Each row As RangeRow In usedRange.Rows
            Dim colIndex As Integer = 0
            For Each cell As Cell In row
                dynamicArray(rowIndex, colIndex) = cell.StringValue
                colIndex += 1
            Next
            rowIndex += 1
        Next

        Console.WriteLine($"Loaded {rowCount} rows x {colCount} columns from UsedRange.")
    End Sub
End Module
Imports IronXL

Module DynamicRangeExample
    Sub Main()
        Dim workbook As WorkBook = WorkBook.Load("DynamicData.xlsx")
        Dim sheet As WorkSheet = workbook.DefaultWorkSheet

        ' Get the bounding range of all populated cells
        Dim usedRange As IronXl.Range = sheet.UsedRange

        Dim rowCount As Integer = usedRange.Rows.Count
        Dim colCount As Integer = usedRange.Columns.Count
        Dim dynamicArray(rowCount - 1, colCount - 1) As String

        Dim rowIndex As Integer = 0
        For Each row As RangeRow In usedRange.Rows
            Dim colIndex As Integer = 0
            For Each cell As Cell In row
                dynamicArray(rowIndex, colIndex) = cell.StringValue
                colIndex += 1
            Next
            rowIndex += 1
        Next

        Console.WriteLine($"Loaded {rowCount} rows x {colCount} columns from UsedRange.")
    End Sub
End Module
$vbLabelText   $csharpLabel

載入後如何過濾和驗證數組資料?

數組填滿完成後,常見的後處理步驟包括:

-跳過標題行:從索引 1 而不是 0 開始顯示循環,以省略列標題。 -刪除空白:呼叫 .Trim() on cell.StringValue 刪除從電子表格複製的前導和尾隨空格。 -處理空白儲存格: IronXL對空白儲存格傳回空字串,因此在大多數情況下不需要進行空值檢查。 -驗證數值範圍:載入雙精確度浮點數後,在儲存之前套用範圍檢查,以擷取包含佔位符值(如 -1 或 9999)的儲存格。

對於較大的資料集,請考慮使用 List(Of T) 或強型別類,而不是原始的二維數組。 將資料載入到類型化物件中,可以簡化下游程式碼的閱讀和測試。 IronXL IronXL模型參考文件記錄了所有可用的儲存格屬性和工作表方法。

如何將.NET陣列匯出回Excel?

IronXL支援使用與讀取相同的 API 將陣列資料寫回工作表。 這適用於在記憶體中轉換資料並將結果儲存為新的 Excel 檔案的情況。

Imports IronXL

Module WriteArrayToExcel
    Sub Main()
        ' Create a new workbook and worksheet
        Dim workbook As WorkBook = WorkBook.Create(ExcelFileFormat.XLSX)
        Dim sheet As WorkSheet = workbook.CreateWorkSheet("Results")

        Dim outputArray(,) As String = {
            {"Region", "Q1", "Q2", "Q3"},
            {"不rth", "12500", "14200", "15800"},
            {"South", "9800", "10500", "11300"},
            {"East", "8200", "9100", "9900"}
        }

        ' Write the array contents to the worksheet cell by cell
        For i As Integer = 0 To outputArray.GetUpperBound(0)
            For j As Integer = 0 To outputArray.GetUpperBound(1)
                Dim cellAddress As String = IronXl.ExcelAddress.ToAddress(i, j)
                sheet(cellAddress).Value = outputArray(i, j)
            Next
        Next

        workbook.SaveAs("Output.xlsx")
        Console.WriteLine("Workbook saved as Output.xlsx")
    End Sub
End Module
Imports IronXL

Module WriteArrayToExcel
    Sub Main()
        ' Create a new workbook and worksheet
        Dim workbook As WorkBook = WorkBook.Create(ExcelFileFormat.XLSX)
        Dim sheet As WorkSheet = workbook.CreateWorkSheet("Results")

        Dim outputArray(,) As String = {
            {"Region", "Q1", "Q2", "Q3"},
            {"不rth", "12500", "14200", "15800"},
            {"South", "9800", "10500", "11300"},
            {"East", "8200", "9100", "9900"}
        }

        ' Write the array contents to the worksheet cell by cell
        For i As Integer = 0 To outputArray.GetUpperBound(0)
            For j As Integer = 0 To outputArray.GetUpperBound(1)
                Dim cellAddress As String = IronXl.ExcelAddress.ToAddress(i, j)
                sheet(cellAddress).Value = outputArray(i, j)
            Next
        Next

        workbook.SaveAs("Output.xlsx")
        Console.WriteLine("Workbook saved as Output.xlsx")
    End Sub
End Module
$vbLabelText   $csharpLabel

ExcelAddress.ToAddress(row, column) 輔助程式將基於零的整數座標轉換為 A1 表示字串。 這樣可以保持寫入迴圈的簡潔,避免手動計算單元位址。 請查看IronXL寫作教程,以了解更多模式,包括公式註入和樣式應用。

如何將多個工作表中的資料分別讀取到不同的陣列中?

有些工作簿會將資料儲存在多個工作表中-例如,每個月一個工作表或每個地區一個工作表。 IronXL透過 workbook.WorkSheets 公開所有工作表,您可以遍歷該工作表,將每個工作表載入到它自己的陣列中。

Imports IronXL

Module MultiSheetArrayLoader
    Sub Main()
        Dim workbook As WorkBook = WorkBook.Load("AnnualReport.xlsx")

        For Each sheet As WorkSheet In workbook.WorkSheets
            Console.WriteLine($"Loading sheet: {sheet.Name}")

            Dim dataRange As IronXl.Range = sheet.UsedRange
            Dim rowCount As Integer = dataRange.Rows.Count
            Dim colCount As Integer = dataRange.Columns.Count
            Dim sheetArray(rowCount - 1, colCount - 1) As String

            Dim rowIndex As Integer = 0
            For Each row As RangeRow In dataRange.Rows
                Dim colIndex As Integer = 0
                For Each cell As Cell In row
                    sheetArray(rowIndex, colIndex) = cell.StringValue
                    colIndex += 1
                Next
                rowIndex += 1
            Next

            Console.WriteLine($"  Loaded {rowCount} rows x {colCount} columns.")
        Next
    End Sub
End Module
Imports IronXL

Module MultiSheetArrayLoader
    Sub Main()
        Dim workbook As WorkBook = WorkBook.Load("AnnualReport.xlsx")

        For Each sheet As WorkSheet In workbook.WorkSheets
            Console.WriteLine($"Loading sheet: {sheet.Name}")

            Dim dataRange As IronXl.Range = sheet.UsedRange
            Dim rowCount As Integer = dataRange.Rows.Count
            Dim colCount As Integer = dataRange.Columns.Count
            Dim sheetArray(rowCount - 1, colCount - 1) As String

            Dim rowIndex As Integer = 0
            For Each row As RangeRow In dataRange.Rows
                Dim colIndex As Integer = 0
                For Each cell As Cell In row
                    sheetArray(rowIndex, colIndex) = cell.StringValue
                    colIndex += 1
                Next
                rowIndex += 1
            Next

            Console.WriteLine($"  Loaded {rowCount} rows x {colCount} columns.")
        Next
    End Sub
End Module
$vbLabelText   $csharpLabel

了解表格導航

workbook.WorkSheets 集合採用零索引,並支援 For Each 和索引存取。 使用 sheet.Name 以程式設計方式識別工作表,並根據已知的工作表名稱進行分支邏輯。 IronXL工作表指南詳細介紹了範圍選擇、命名範圍和動態範圍偵測。

對於包含數十個工作表的文檔,在載入之前按名稱進行篩選,以避免處理無關的工作表並浪費記憶體。

開發者應該了解哪些關於互通數組格式的知識?

Interop 方法使用 COM 的 1 索引將儲存格資料作為 Object(,) 陣列傳回。 第一行的第一個元素位於 values(1, 1),而不是 values(0, 0)。 這是導致差一錯誤的常見原因。

另一個需要關注的問題是空值處理:Interop 會為空白儲存格傳回 不thing。 對空引用呼叫 .ToString() 會在執行時拋出 NullReferenceException 例外。您必須在每個單元格訪問周圍添加空值保護:

If values(i, j) Is不t 不thing Then
    line &= values(i, j).ToString() & vbTab
End If
If values(i, j) Is不t 不thing Then
    line &= values(i, j).ToString() & vbTab
End If
$vbLabelText   $csharpLabel

IronXL透過為空白儲存格傳回空字串來消除此問題,這表示循環程式碼無需任何額外的保護即可運作。

有關 Interop 使用的 Excel 物件模型的權威性信息,請參閱Microsoft Excel VBA 參考MSDN Office 互通文件

下一步計劃是什麼?

將 Excel 資料讀入數組是.NET電子表格中最常見的任務之一,而IronXL使實現該任務變得非常簡單。 採取下一步行動:

-下載IronXL :透過NuGet安裝 (Install-Package IronXl.Excel) 並依照入門指南進行操作。 -探索格式支援: IronXL可讀取和寫入 XLSX、XLS、CSV、TSV 和 JSON。 詳情請參閱支援的格式頁面。 -嘗試進階功能:對範圍進行排序、應用公式、設定儲存格樣式和產生圖表——所有這些都無需安裝 Excel。 請查看IronXL功能概述以取得完整的功能清單。 -瀏覽程式碼範例IronXL程式碼範例庫提供了數十種常見電子表格任務的複製貼上程式碼片段。 -查看許可:對於生產部署, IronXL許可證提供開發人員、團隊和 OEM 等級。

VB .NET將 Excel 檔案讀取到陣列: IronXL與 Microsoft Interop 比較:圖 2 - IronXL輸出

IronXL和 Microsoft Office Interop 都可以將 Excel 資料讀取到陣列中,但IronXL透過其獨立於 Office 的架構、更簡潔的 API 和靈活的部署選項,提供了更卓越的開發體驗。 該庫消除了 COM 物件管理和系統依賴等常見痛點,同時提供了對電子表格自動化高級功能的存取。

IronXL文檔中心,您可以查看範例專案、資源和文檔,探索IronXL的全部功能。 對於企業應用, IronXL 的授權選項提供靈活的條款,以適應任何專案範圍。

常見問題解答

使用VB.NET將Excel文件讀取到陣列的最佳方法是什麼?

在VB.NET中讀取Excel文件到陣列可以使用IronXL或Microsoft Office Interop來有效實現。IronXL提供了一種簡化而高效的方法,消除了對Microsoft Excel安裝的需求,並降低了代碼的複雜性。

IronXL在讀取Excel文件時如何與Microsoft Office Interop比較?

IronXL為讀取Excel文件到陣列提供了一種更簡化和快速的方法,與Microsoft Office Interop相比,不需要在伺服器上安裝Excel,並且以更少的開銷處理Excel文件操作。

能否不安裝Microsoft Excel操作Excel數據?

是的,使用IronXL可以不需要安裝Microsoft Excel操作Excel數據。這使其成為在不適合安裝Excel的伺服器環境中的一個很好的選擇。

為什麼要考慮在VB.NET中使用IronXL進行Excel操作?

IronXL通過提供簡潔的API來處理各種Excel文件格式簡化了Excel操作。它在性能上更快,部署更容易,特別是在不能安裝Microsoft Excel的環境中。

IronXL適合在VB.NET中處理大型Excel資料集嗎?

是的,IronXL經過優化以提高性能,可高效處理大型Excel資料集,提供快速數據抽取和操作。

哪些代碼範例可用於在VB.NET中將Excel文件讀取到陣列?

本指南提供了IronXL和Microsoft Office Interop的工作代碼範例,展示如何在VB.NET中有效地將Excel文件讀取到陣列。

IronXL 是否支持不同的 Excel 文件格式?

IronXL支持廣泛的Excel文件格式,包括XLSX、XLS、CSV等,這使其在各種數據處理需求中具有多樣化。

與Microsoft Office Interop相比,使用IronXL的好處是什麼?

IronXL更容易使用,無需安裝Excel,並提供更佳的性能。它簡化了代碼,並減少與Microsoft Office Interop中COM交互相關的潛在錯誤。

IronXL 如何處理与 Microsoft Interop 不同的二維陣列?

IronXL提供將Excel數據直接轉換為二維陣列的方法,確保比需要Microsoft Interop複雜設置的更高效和直接的方法。

有什麼推薦的最佳實踐可以用來將Excel文件讀取到陣列?

最佳實踐包括選擇合適的工具如IronXL以用於易用性和性能,並確保有效率的代碼結構來有效管理內存和處理能力。

Jordi Bardia
軟體工程師
Jordi 在 Python、C# 和 C++ 上最得心應手,當他不在 Iron Software 展現技術時,便在做遊戲編程。在分担產品测测试,產品開發和研究的责任時,Jordi 為持续的產品改進增值。他说这种多样化的经验使他受到挑战并保持参与, 而这也是他与 Iron Software 中工作一大乐趣。Jordi 在佛罗里达州迈阿密长大,曾在佛罗里达大学学习计算机科学和统计学。

Iron Support Team

We're online 24 hours, 5 days a week.
Chat
Email
Call Me