使用 IRONXL VB.NET 使用 IronXL 讀取 Excel 檔案:不使用 Microsoft Office 的逐步指南 Curtis Chau 更新:2026年1月5日 下載 IronXL NuGet 下載 DLL 下載 開始免費試用 法學碩士副本 法學碩士副本 將頁面複製為 Markdown 格式,用於 LLMs 在 ChatGPT 中打開 請向 ChatGPT 諮詢此頁面 在雙子座打開 請向 Gemini 詢問此頁面 在 Grok 中打開 向 Grok 詢問此頁面 打開困惑 向 Perplexity 詢問有關此頁面的信息 分享 在 Facebook 上分享 分享到 X(Twitter) 在 LinkedIn 上分享 複製連結 電子郵件文章 在 VB.NET 應用程式中讀取 Excel 檔案是商業軟體、資料處理工具和報表系統的共同需求。 使用 Microsoft Office Interop 的傳統方法需要在每個 Windows 桌面或伺服器上安裝 Excel 應用程式,產生複雜的依賴關係,造成部署上的麻煩。 本教學示範如何使用 IronXL 在 VB.NET 中讀取 Excel 檔案資料,IronXL 是一個現代化的 .NET 函式庫,無須安裝任何 Office 即可處理 XLSX 和 XLS 檔案格式。 VB.NET(在開發者社群中通常稱為 VB)提供多種閱讀 Excel 檔案的選項。 VB.NET 開發人員可以選擇使用 Microsoft Office Interop 或第三方函式庫來存取和處理 Excel 試算表。 有幾個函式庫可用於在 VB.NET 中讀取 Excel 檔案,包括微軟自己的工具和第三方解決方案。 許多這些函式庫,例如 IronXL,都可以透過 NuGet 套件管理員輕鬆安裝,簡化 VB.NET 專案的設定程序。 在記錄或解釋 Excel 工作流程時,開發人員通常會加入電子表格預覽、工作表佈局或程式碼與輸出比較等圖像,以直觀展示 Excel 資料的結構與處理方式。 使用 IronXL for .NET 之類的函式庫,可確保 Excel 圖像中顯示的資料與您的 VB.NET 應用程式在程式上讀取的資料完全相符,進而提高技術文件和教學的清晰度。 如何安裝 IronXL for VB.NET Excel 處理程式? 透過 Visual Studio 中的 NuGet Package Manager Console 安裝 IronXL。 開啟您的 VB.NET 專案並執行: Install-Package IronXL.Excel 安裝完成後,在您的 VB.NET 程式碼檔案頂端新增命名空間匯入: Imports IronXL Imports System Imports IronXL Imports System VB .NET 這就是整個設定 - 按照這些簡單的指示,您就準備好了。 沒有 COM 參考、沒有 Office Primary Interop Assemblies,也不需要管理特定版本的依賴關係。 您的專案已準備好建立、讀取、寫入及處理 Excel 檔案。 瞭解 Excel 檔案格式 在 VB.NET 中處理 Excel 檔案時,瞭解不同的 Excel 檔案格式對於建立可有效讀取、寫入及處理試算表資料的強大應用程式至關重要。 您會遇到的最常見格式是 XLS、XLSX 和 XLSB。 每種格式都有其獨特的特性,會影響您在 .NET 專案中存取和處理 Excel 資料的方式。 XLS 是 Excel 2003 及更早版本使用的傳統 Excel 檔案格式。 它以二進位結構儲存資料,如果沒有專門的函式庫,直接操作會更具挑戰性。 XLSX 由 Excel 2007 引進,目前是大多數現代 Excel 工作簿的預設格式。 XLSX 檔案實際上是包含 XML 檔案的 ZIP 檔案,使其更容易進行程式化操作,也更適合跨平台應用程式。 XLSB 是專為大型 Excel 檔案設計的二進位格式,可為大量資料集提供更快速的讀寫作業。 當您在 VB.NET 中建立 Excel 檔案時,選擇適合您需求的格式非常重要。 IronXL 之類的函式庫可根據您的需求,輕鬆產生 XLS、XLSX、CSV 或 TSV 格式的新工作簿。 例如,如果您需要與不同平台上的使用者分享資料或與其他系統整合,XLSX 或 CSV 可能是最佳選擇。如果您使用的是舊式系統,您可能需要支援較舊的 XLS 檔案格式。 這些格式之間的差異也會影響 Excel 檔案的讀寫方式。 例如,XLSX 檔案以 XML 為基礎,較容易解析和操作,而 XLS 檔案則需要處理二進位資料。 使用 IronXL,您可以使用 WorkBook.Load 方法讀取 Excel 檔案,不論其格式為何--只要提供檔案路徑,函式庫就會自動偵測格式。 載入後,您可以存取 Excel 工作簿,遍歷每個 Excel 工作表,並使用 Value 屬性或 Cells 集合擷取或更新儲存格值。 在 VB.NET 中操縱 Excel 檔案時,經常需要處理不同的資料類型,例如數字、文字和日期。 FormatValue 方法可讓您以所需格式顯示 Excel 資料,確保您的應用程式能清楚呈現資訊。 如何載入和讀取 Excel 檔案? WorkBook.Load 方法會開啟任何 Excel 檔案,並傳回一個包含所有工作表和 Excel 資料的工作簿物件。 IronXL 可自動偵測檔案格式,支援 XLSX、XLS、XLSM、CSV 和 TSV 試算表格式。 Imports IronXL Imports System Module Program Sub Main() ' Load the Excel workbook from file path Dim workbook As WorkBook = WorkBook.Load("Employees.xlsx") ' Access the first worksheet in the workbook Dim sheet As WorkSheet = workbook.DefaultWorkSheet ' Read a single cell value using the Value property Dim companyName As String = sheet("A1").StringValue Console.WriteLine("Company: " & companyName) End Sub End Module Imports IronXL Imports System Module Program Sub Main() ' Load the Excel workbook from file path Dim workbook As WorkBook = WorkBook.Load("Employees.xlsx") ' Access the first worksheet in the workbook Dim sheet As WorkSheet = workbook.DefaultWorkSheet ' Read a single cell value using the Value property Dim companyName As String = sheet("A1").StringValue Console.WriteLine("Company: " & companyName) End Sub End Module VB .NET WorkBook.Load 方法接受一個檔案路徑字串,並傳回一個 WorkBook 物件,該物件提供對試算表內容的完整存取。 DefaultWorkSheet 屬性會擷取第一個工作表,而 StringValue 屬性則會以文字形式擷取儲存格內容。 您也可以使用 workbook.GetWorkSheet("Sheet1") 依名稱存取工作表,或使用 workbook.WorkSheets(0) 依索引存取新工作簿中的任何工作表。 輸入 輸出 對於有密碼保護的 Excel 檔案,請傳輸密碼作為第二個參數:WorkBook.Load("Protected.xlsx", "myPassword")。 此方法適用於您指定的任何檔案名稱。 如何從儲存格讀取不同的資料類型? Excel 單元格包含各種資料類型,包括文字、數字、日期和公式。 IronXL 提供類型化的屬性,以正確格式擷取儲存格數值,無須手動轉換。 每個儲存格物件都會針對不同的資料類型開放一個值屬性。 Imports IronXL Imports System Module Program Sub Main() Dim workbook As WorkBook = WorkBook.Load("Employees.xlsx") Dim sheet As WorkSheet = workbook.DefaultWorkSheet ' Read different data types from row 2 cells Dim employeeId As Integer = sheet("A2").IntValue Dim employeeName As String = sheet("B2").StringValue Dim salary As Decimal = sheet("D2").DecimalValue Dim hireDate As DateTime = sheet("E2").DateTimeValue ' Display the extracted Excel data Console.WriteLine("ID: " & employeeId.ToString()) Console.WriteLine("Name: " & employeeName) Console.WriteLine("Salary: $" & salary.ToString("N2")) Console.WriteLine("Hired: " & hireDate.ToShortDateString()) End Sub End Module Imports IronXL Imports System Module Program Sub Main() Dim workbook As WorkBook = WorkBook.Load("Employees.xlsx") Dim sheet As WorkSheet = workbook.DefaultWorkSheet ' Read different data types from row 2 cells Dim employeeId As Integer = sheet("A2").IntValue Dim employeeName As String = sheet("B2").StringValue Dim salary As Decimal = sheet("D2").DecimalValue Dim hireDate As DateTime = sheet("E2").DateTimeValue ' Display the extracted Excel data Console.WriteLine("ID: " & employeeId.ToString()) Console.WriteLine("Name: " & employeeName) Console.WriteLine("Salary: $" & salary.ToString("N2")) Console.WriteLine("Hired: " & hireDate.ToShortDateString()) End Sub End Module VB .NET 每個類型化的屬性 (IntValue, StringValue, DecimalValue, DateTimeValue) 會自動處理從底層儲存格值的轉換。 Text 屬性回傳的顯示值與 Excel 應用程式中顯示的完全相同,而一般 Value 屬性則回傳原始資料物件。 對於包含 Excel 公式的儲存格,IronXL 會計算結果並傳回計算值,因此您無需額外的程式碼即可擷取公式結果。 如何迭代 Excel 行? 處理多筆記錄需要遍歷 Excel 工作表的行和列。 IronXL 的範圍語法可讓您直接使用 VB.NET 的 For Each 環路結構。 您可以編寫程式碼,一次過處理任意數量的行。 Imports IronXL Imports System Module Program Sub Main() Dim workbook As WorkBook = WorkBook.Load("Employees.xlsx") Dim sheet As WorkSheet = workbook.DefaultWorkSheet ' Loop through cells in column B to retrieve employee names Console.WriteLine("Employee List:") For Each cell In sheet("B2:B10") If Not String.IsNullOrEmpty(cell.Text) Then Console.WriteLine(" - " & cell.Text) End If Next End Sub End Module Imports IronXL Imports System Module Program Sub Main() Dim workbook As WorkBook = WorkBook.Load("Employees.xlsx") Dim sheet As WorkSheet = workbook.DefaultWorkSheet ' Loop through cells in column B to retrieve employee names Console.WriteLine("Employee List:") For Each cell In sheet("B2:B10") If Not String.IsNullOrEmpty(cell.Text) Then Console.WriteLine(" - " & cell.Text) End If Next End Sub End Module VB .NET 範圍語法 sheet("B2:B10") 選擇從 B2 到 B10 的儲存格,並傳回一個您可以循環使用的可枚举集合。 String.IsNullOrEmpty 檢查可優雅地處理空儲存格,防止控制台輸出中出現空行。 若要處理具有多列的整行,請使用巢狀循環,或透過結合行索引與列字母來存取儲存格。 您也可以使用行數來決定何時停止循環。 輸出 Rows 屬性可讓您在整個 工作表資料範圍中逐行遍歷,讓您可以存取每一行的單元格值陣列。 如何在 Excel 資料上執行計算? IronXL 包含內建的聚合函數,用於常見的計算,而無需撰寫手動迴圈。 這些函式可直接作用於儲存格範圍,並與 LINQ 整合以進行進階查詢。 API 可讓您輕鬆地從任何試算表擷取統計資料。 Imports IronXL Imports System Module Program Sub Main() Dim workbook As WorkBook = WorkBook.Load("Employees.xlsx") Dim sheet As WorkSheet = workbook.DefaultWorkSheet ' Calculate salary statistics from column D range Dim totalSalaries As Decimal = sheet("D2:D50").Sum() Dim highestSalary As Decimal = sheet("D2:D50").Max() Dim lowestSalary As Decimal = sheet("D2:D50").Min() ' Display the calculated results Console.WriteLine("Total Payroll: $" & totalSalaries.ToString("N2")) Console.WriteLine("Highest Salary: $" & highestSalary.ToString("N2")) Console.WriteLine("Lowest Salary: $" & lowestSalary.ToString("N2")) End Sub End Module Imports IronXL Imports System Module Program Sub Main() Dim workbook As WorkBook = WorkBook.Load("Employees.xlsx") Dim sheet As WorkSheet = workbook.DefaultWorkSheet ' Calculate salary statistics from column D range Dim totalSalaries As Decimal = sheet("D2:D50").Sum() Dim highestSalary As Decimal = sheet("D2:D50").Max() Dim lowestSalary As Decimal = sheet("D2:D50").Min() ' Display the calculated results Console.WriteLine("Total Payroll: $" & totalSalaries.ToString("N2")) Console.WriteLine("Highest Salary: $" & highestSalary.ToString("N2")) Console.WriteLine("Lowest Salary: $" & lowestSalary.ToString("N2")) End Sub End Module VB .NET 聚合函數(Sum、Min、Max、Average)會計算指定儲存格範圍內的結果。 這些方法可自動跳過空儲存格並處理數字轉換,讓薪資計算、庫存總計和統計分析在您的應用程式中簡易實作。 如何建立完整的員工資料閱讀器? 以下是一個實際應用範例,它會載入一份員工試算表、在循環中處理每條記錄,並顯示格式化的輸出與適當的錯誤處理。 此程式碼示範如何建立完整的資料擷取系統。 Imports IronXL Imports System Module EmployeeDataReader Sub Main() Try ' Load the employee Excel workbook from path Dim workbook As WorkBook = WorkBook.Load("Employees.xlsx") Dim sheet As WorkSheet = workbook.DefaultWorkSheet Console.WriteLine("=== Employee Data Report ===") Console.WriteLine() ' Process each employee row (skip header in first row) Dim rowNumber As Integer = 2 Dim totalSalary As Decimal = 0 Dim employeeCount As Integer = 0 Do While Not String.IsNullOrEmpty(sheet("A" & rowNumber.ToString()).StringValue) ' Retrieve data from each column in the row Dim id As Integer = sheet("A" & rowNumber.ToString()).IntValue Dim name As String = sheet("B" & rowNumber.ToString()).StringValue Dim department As String = sheet("C" & rowNumber.ToString()).StringValue Dim salary As Decimal = sheet("D" & rowNumber.ToString()).DecimalValue ' Display formatted employee record Console.WriteLine("ID: " & id.ToString() & " " & name & " " & department & " $" & salary.ToString("N2")) totalSalary += salary employeeCount += 1 rowNumber += 1 Loop Console.WriteLine() Console.WriteLine("Total Employees: " & employeeCount.ToString()) Console.WriteLine("Total Payroll: $" & totalSalary.ToString("N2")) Catch ex As Exception Console.WriteLine("Error reading Excel file: " & ex.Message) End Try End Sub End Module Imports IronXL Imports System Module EmployeeDataReader Sub Main() Try ' Load the employee Excel workbook from path Dim workbook As WorkBook = WorkBook.Load("Employees.xlsx") Dim sheet As WorkSheet = workbook.DefaultWorkSheet Console.WriteLine("=== Employee Data Report ===") Console.WriteLine() ' Process each employee row (skip header in first row) Dim rowNumber As Integer = 2 Dim totalSalary As Decimal = 0 Dim employeeCount As Integer = 0 Do While Not String.IsNullOrEmpty(sheet("A" & rowNumber.ToString()).StringValue) ' Retrieve data from each column in the row Dim id As Integer = sheet("A" & rowNumber.ToString()).IntValue Dim name As String = sheet("B" & rowNumber.ToString()).StringValue Dim department As String = sheet("C" & rowNumber.ToString()).StringValue Dim salary As Decimal = sheet("D" & rowNumber.ToString()).DecimalValue ' Display formatted employee record Console.WriteLine("ID: " & id.ToString() & " " & name & " " & department & " $" & salary.ToString("N2")) totalSalary += salary employeeCount += 1 rowNumber += 1 Loop Console.WriteLine() Console.WriteLine("Total Employees: " & employeeCount.ToString()) Console.WriteLine("Total Payroll: $" & totalSalary.ToString("N2")) Catch ex As Exception Console.WriteLine("Error reading Excel file: " & ex.Message) End Try End Sub End Module VB .NET 本範例展示完整的資料擷取工作流程。 Do While 環路會持續執行,直到遇到 A 列中的空白儲存格為止,因此對於具有不同行數的試算表而言非常靈活 - 無需事先知道確切的行數。 每次迭代都會從多列中抽取員工資訊,並累積薪資總額。 Try-Catch 區塊可處理遺失檔案或資料損毀等常見問題,防止應用程式當機。 輸出 您也可以在 VB.NET 中以程式化的方式將資料插入工作表單格。 例如,若要新增員工記錄,您可以使用: sheet("A10").Value = 1010 ' ID inserted sheet("B10").Value = "Jane Doe" ' Name inserted sheet("C10").Value = "Finance" ' Department inserted sheet("D10").Value = 75000 ' Salary inserted workbook.Save() sheet("A10").Value = 1010 ' ID inserted sheet("B10").Value = "Jane Doe" ' Name inserted sheet("C10").Value = "Finance" ' Department inserted sheet("D10").Value = 75000 ' Salary inserted workbook.Save() VB .NET 這演示了如何使用 VB.NET 程式碼將新資料插入特定的儲存格。 對於 CSV 檔案,請使用 WorkBook.LoadCSV("data.csv") 來取代標準的 Load 方法,以最佳化逗號分隔格式的解析。 擷取的 Excel 資料可輕鬆與資料庫、報表或 VB.NET 應用程式中的其他商業邏輯整合。 您也可以將擷取到的值填入 DataTable 或陣列,以便進一步處理。 Windows 表單整合:相同的程式碼可以在 Windows 表單應用程式中運作。 建立一個有兩個按鈕的表單,一個用來載入檔案,另一個用來顯示資料,然後處理點擊事件: Imports IronXL Imports System.Windows.Forms Public Class Form1 Private workbook As WorkBook Private Sub btnLoad_Click(ByVal sender As Object, ByVal e As EventArgs) workbook = WorkBook.Load("Employees.xlsx") MessageBox.Show("Excel file loaded successfully!") End Sub Private Sub btnDisplay_Click(ByVal sender As Object, ByVal e As EventArgs) If workbook IsNot Nothing Then Dim sheet As WorkSheet = workbook.DefaultWorkSheet Dim name As String = sheet("B2").StringValue MessageBox.Show("First Employee: " & name) End If End Sub End Class Imports IronXL Imports System.Windows.Forms Public Class Form1 Private workbook As WorkBook Private Sub btnLoad_Click(ByVal sender As Object, ByVal e As EventArgs) workbook = WorkBook.Load("Employees.xlsx") MessageBox.Show("Excel file loaded successfully!") End Sub Private Sub btnDisplay_Click(ByVal sender As Object, ByVal e As EventArgs) If workbook IsNot Nothing Then Dim sheet As WorkSheet = workbook.DefaultWorkSheet Dim name As String = sheet("B2").StringValue MessageBox.Show("First Employee: " & name) End If End Sub End Class VB .NET 本範例展示 Private Sub 事件處理器與 ByVal sender As Object 和 ByVal e As EventArgs 參數如何將 IronXL 整合到桌面表單中。 具有 End Class 的類別結構遵循標準的 VB.NET 標準模式。 輸出 結論 IronXL 將 VB.NET 讀取 Excel 檔案從複雜的 Interop 挑戰轉換成簡單直接的程式碼。 載入工作簿、擷取已輸入的單元值、迭代行和列,以及執行計算,都只需要幾行直覺的語法 - 而無需在 Windows 桌面或伺服器上安裝 Microsoft Office。 無論您要建立的是控制台應用程式、有按鈕的 Windows 表單,或是 ASPX 網頁,相同的程式碼都可以運作。 立即開始免費試用,在您的 VB.NET 專案中實作 Excel 資料處理。 下載 IronXL 並探索 完整的說明文件,以瞭解進階功能,例如 建立 Excel 檔案、匯出為多種格式,以及 儲存格樣式。 IronXL API (https://ironsoftware.com/csharp/excel/object-reference/api/) 為任何 Excel 操作任務提供了完整的系統 - 無論您需要在 .NET 應用程式中讀取、寫入、建立或操作試算表資料。 常見問題解答 IronXL 是什麼? IronXL 是一個 .NET 函式庫,可讓開發人員閱讀、編輯和建立各種格式的 Excel 檔案,例如 XLSX 和 XLS,而無需安裝 Microsoft Office。 IronXL 如何用於在 VB.NET 中讀取 Excel 檔案? IronXL for .NET 可在 VB.NET 中使用,透過將檔案載入 WorkBook 物件來讀取 Excel 檔案,並可存取 WorkBook 中 WorkSheet 的資料。 為何選擇 IronXL 而非 Microsoft Office Interop 來閱讀 Excel 檔案? IronXL 提供更簡單的部署程序,因為它不需要安裝 Microsoft Office,省去了複雜的相依性,減少部署時的麻煩。 IronXL.Excel 可以處理哪些類型的 Excel 檔案格式? IronXL.Excel 可處理各種 Excel 檔案格式,包括 XLSX 和 XLS,因此可滿足不同的資料處理需求。 IronXL 能有效率地處理大型 Excel 檔案嗎? 是的,IronXL.Excel 已針對效能進行最佳化,並能有效率地處理大型 Excel 檔案,因此適合需要處理大量資料的應用程式。 除了 VB.NET 之外,IronXL 是否與其他 .NET 語言相容? 是的,IronXL 與 C# 和 F# 等其他 .NET 語言相容,為在不同環境下工作的開發人員提供彈性。 IronXL 是否支援在未安裝 Microsoft Office 的情況下讀取 Excel 檔案? 是的,IronXL.Excel 的主要功能之一是可以讀取 Excel 檔案,無需 Microsoft Office,簡化部署並降低系統需求。 商業軟體使用 IronXL 有什麼好處? IronXL.Excel 提供簡單易用的方法來讀取和處理 Excel 資料,非常適合需要資料分析、報告或與 Excel 試算表整合的商業軟體。 Curtis Chau 立即與工程團隊聊天 技術撰稿人 Curtis Chau 擁有電腦科學學士學位(卡爾頓大學),專長於前端開發,精通 Node.js、TypeScript、JavaScript 和 React。Curtis 對製作直覺且美觀的使用者介面充滿熱情,他喜歡使用現代化的架構,並製作結構良好且視覺上吸引人的手冊。除了開發之外,Curtis 對物聯網 (IoT) 也有濃厚的興趣,他喜歡探索整合硬體與軟體的創新方式。在空閒時間,他喜歡玩遊戲和建立 Discord bots,將他對技術的熱愛與創意結合。 相關文章 發表日期 2026年2月15日 如何使用 OleDb vs IronXL.Excel 將 DataTable 匯出至 Excel C# 學習如何使用 OleDb vs IronXL.Excel 將 DataTable 匯出至 Excel C#。 閱讀更多 發表日期 2026年2月15日 如何在未安裝 Office 的情況下使用 IronXL 開啟 VB.NET 中的現有 Excel 檔案 了解如何使用 IronXL for .NET 在未安裝 Office 的情況下在 VB.NET 中開啟現有的 Excel 檔案。 閱讀更多 發表日期 2026年2月15日 C# CSV to XLSX:完整開發人員指南 使用 IronXL 在 C# 中將 CSV 轉換為 XLSX。載入 CSV 檔案、保留資料類型、新增圖表,以及匯出為 Excel 格式,而無需 Microsoft Office 的相依性。 閱讀更多 .NET Core Excel 工作表:使用 IronXL.Excel 在 C# 中建立專業的 Excel 工作表檔案在 VB .NET 2010 中使用 IronXL ...
發表日期 2026年2月15日 如何使用 OleDb vs IronXL.Excel 將 DataTable 匯出至 Excel C# 學習如何使用 OleDb vs IronXL.Excel 將 DataTable 匯出至 Excel C#。 閱讀更多
發表日期 2026年2月15日 如何在未安裝 Office 的情況下使用 IronXL 開啟 VB.NET 中的現有 Excel 檔案 了解如何使用 IronXL for .NET 在未安裝 Office 的情況下在 VB.NET 中開啟現有的 Excel 檔案。 閱讀更多
發表日期 2026年2月15日 C# CSV to XLSX:完整開發人員指南 使用 IronXL 在 C# 中將 CSV 轉換為 XLSX。載入 CSV 檔案、保留資料類型、新增圖表,以及匯出為 Excel 格式,而無需 Microsoft Office 的相依性。 閱讀更多