使用 IRONXL 如何在 VB.NET 中撰寫 Excel 文件(簡便方法) Jacob Mellor 更新:2026年1月20日 下載 IronXL NuGet 下載 DLL 下載 開始免費試用 LLM副本 LLM副本 將頁面複製為 Markdown 格式,用於 LLMs 在 ChatGPT 中打開 請向 ChatGPT 諮詢此頁面 在雙子座打開 請向 Gemini 詢問此頁面 在 Grok 中打開 向 Grok 詢問此頁面 打開困惑 向 Perplexity 詢問有關此頁面的信息 分享 在 Facebook 上分享 分享到 X(Twitter) 在 LinkedIn 上分享 複製連結 電子郵件文章 使用Office Interop傳統上已成為自動化Microsoft Excel工作的實際選擇,但它存在顯著的缺點——性能問題、服務器端的複雜性,以及要求在機器上安裝Microsoft Excel。 本指南展示了一種現代、更高效的方法,教您如何在VB.NET中創建和寫入Excel文件。 我們將使用IronXL for .NET,這是一個專為幫助開發人員創建、讀取和編輯Excel電子表格而構建的程式庫,無需依賴Office Interop。您將看到如何只需幾行直觀的代碼來處理常見任務,如創建新文件、從集合寫入數據,以及修改現有文件。 我如何在VB.NET中開始進行Excel自動化? 要在您的VB.NET項目中開始寫入Excel文件,您首先需要添加IronXL程式庫。 這個過程很簡單,可以直接在Visual Studio中完成。 首先,確保您的開發環境已準備就緒: Visual Studio 2022或更高版本。 一個目標.NET Framework 4.6.2或更高版本或.NET Core/.NET 5+的活躍專案。 IronXL與所有現代.NET版本兼容,包含.NET 9和10。 接下來,安裝IronXL NuGet包: 在Visual Studio中打開NuGet Package Manager。 搜索包件IronXl.Excel。 點擊"安裝"。 或者,您可以通過以下命令在套件管理器控制台中安裝它: Install-Package IronXL.Excel 在Visual Studio的菜單中導航到NuGet Package Manager以尋找適合VB.NET Excel集成的包件。 安裝完成後,您即可開始編寫代碼。 只需在VB.NET文件的頂部添加Imports IronXL,即可將程式庫的類引入範疇。 搜尋IronXL包以安裝需要的程式庫來使用VB.NET寫入Excel文件。 我如何創建一個新的Excel文件並向其中寫入數據? 從零開始創建一個Excel文件是一項基本任務。 使用IronXL,您可以生成工作簿,添加工作表,並用來自各種來源的數據填充單元格,比如一個對象集合。 這非常適合用於像導出應用程序數據或生成每日報告這樣的任務。 讓我們來看一個實用的例子。 假設我們有一個產品數據列表,想要導出到Excel電子表格。 將集合寫入新的Excel工作表 以下代碼演示瞭如何採用List(Of Product)並將其內容寫入一個新創建的Excel文件。 Imports IronXL Imports System.Collections.Generic Imports System.Linq Public Class Product Public Property ID As Integer Public Property Name As String Public Property Price As Decimal End Class Module Program Sub Main(args As String()) ' 1. Prepare a list of data to write to Excel. Dim products As New List(Of Product) From { New Product With {.ID = 1, .Name = "Laptop", .Price = 1200.50D}, New Product With {.ID = 2, .Name = "Keyboard", .Price = 75.00D}, New Product With {.ID = 3, .Name = "Mouse", .Price = 25.99D} } ' 2. Create a new Excel workbook and select the default worksheet. Dim workbook As WorkBook = WorkBook.Create() Dim sheet As WorkSheet = workbook.DefaultWorkSheet ' 3. Write headers for our data. sheet("A1").Value = "Product ID" sheet("B1").Value = "Product Name" sheet("C1").Value = "Price" ' Style the header row. Dim headerRange = sheet.GetRange("A1:C1") headerRange.Style.Font.Bold = True headerRange.Style.SetBackgroundColor("#D3D3D3") ' Light Gray ' 4. Iterate through the product list and write data to subsequent rows. For i As Integer = 0 To products.Count - 1 Dim product = products(i) Dim row = i + 2 ' Start from the second row sheet("A" & row).Value = product.ID sheet("B" & row).Value = product.Name sheet("C" & row).Value = product.Price Next ' 5. Apply currency formatting to the price column. Dim priceColumn = sheet.GetRange("C2:C" & products.Count + 1) priceColumn.Style.Format = "$#,##0.00" ' 6. Auto-size columns for better readability. sheet.Columns.AutoFit() ' 7. Save the newly created and populated workbook to a file. workbook.SaveAs("ProductReport.xlsx") End Sub End Module 運行原理 此代碼範例展示了IronXL API借助於自動化Excel輸入的簡單性和功能。 數據準備:我們從一個簡單的List(Of Product)開始,代表我們要導出的數據。 這模擬從數據庫或其他業務邏輯層拉取數據。 工作簿和工作表創建:WorkBook.Create()在內存中生成一個新的空白Excel工作簿。 每個新的工作簿自動包含一個工作表,我們可以通過DefaultWorkSheet屬性訪問它。 對於更複雜的文件,您可以使用CreateWorkSheet方法添加更多工作表。 寫入數據:我們使用熟悉的A1樣式符號(例如sheet("A1"))訪問單元格。 .Value屬性用於設置和獲取單元格的內容。 IronXL自動處理數字、字符串和日期的數據類型轉換。 樣式和格式化:IronXL提供了全面的樣式API。 在示例中,我們選擇了一個Range的單元格,並為我們的標題應用了粗體格式和背景顏色。 我們還使用Style.Format屬性為價格列應用了貨幣格式,這是創建專業報告所需的重要功能。 如需更多樣式選項,請參閱Style對象的API文檔。 保存文件:最後,workbook.SaveAs("ProductReport.xlsx")將內存中的工作簿寫入文件系統。 IronXL支持多種格式,包括.tsv,為您輸出數據提供靈活性。 我如何將數據寫入現有的Excel文件? 通常,您不需要創建一個新文件,而是將數據添加到現有文件中。 這對於記錄、追加記錄到數據集或更新報告很常見。 IronXL使這個過程與創建新文件一樣簡單。 以下示例說明如何打開現有的電子表格,找到最後使用的行,並追加新數據。 Imports IronXL Imports System.Collections.Generic Imports System.Linq ' (Assuming the Product class from the previous example is available) Module Program Sub Main(args As String()) ' Ensure the file from our previous example exists. If Not System.IO.File.Exists("ProductReport.xlsx") Then Console.WriteLine("Please run the first example to create ProductReport.xlsx") Return End If ' 1. Load the existing workbook from the file system. Dim workbook As WorkBook = WorkBook.Load("ProductReport.xlsx") Dim sheet As WorkSheet = workbook.DefaultWorkSheet ' 2. Find the first empty row to append new data. ' The LastRowUsed property gives us the last row with data. Dim lastRow = sheet.Info.LastRowUsed Dim newRowIndex = lastRow.RowNumber + 1 ' 3. Define the new data to be added. Dim newProducts As New List(Of Product) From { New Product With {.ID = 4, .Name = "Monitor", .Price = 350.00D}, New Product With {.ID = 5, .Name = "Webcam", .Price = 99.99D} } ' 4. Loop through the new data and write it to the worksheet. For i As Integer = 0 To newProducts.Count - 1 Dim product = newProducts(i) Dim currentRow = newRowIndex + i sheet("A" & currentRow).Value = product.ID sheet("B" & currentRow).Value = product.Name sheet("C" & currentRow).Value = product.Price Next ' 5. Re-apply formatting and auto-fit columns to include new data. Dim priceColumn = sheet.GetRange("C2:C" & sheet.Info.LastRowUsed.RowNumber) priceColumn.Style.Format = "$#,##0.00" sheet.Columns.AutoFit() ' 6. Save the changes back to the original file. workbook.Save() ' Or save as a new file to preserve the original. ' workbook.SaveAs("ProductReport_Updated.xlsx") End Sub End Module 更深入的解釋 修改現有文件遵循邏輯的加載-編輯-保存模式。 加載工作簿:我們使用WorkBook.Create()。 這會打開指定文件並將其內容解析為一個WorkBook對象,準備好進行操作。 找到插入點:追加數據的關鍵挑戰是找到開始寫入的位置。 IronXL通過Row對象。 我們只需獲取其行號並加一即可找到第一個空行。 追加數據:寫入新數據的過程與前面的示例相同。 我們迭代我們的新Product列表並填充新的識别的空行中的單元格。 保存變更:workbook.Save()方法用內存中修改過的工作簿覆蓋原始文件。 如果您需要保留原始版本,只需使用新文件名調用SaveAs(),如註釋行所示。 如何將DataTable寫入Excel工作表? 對於處理來自SQL Server等數據源的開發人員來說,一項常見任務是將DataTable的內容直接寫入Excel表。 IronXL用內置方法簡化了這一過程,消除了手動遍歷行和列的需要。 此示例顯示如何填充DataTable並將其一鍵導出到新Excel文件。 Imports IronXL Imports System.Data Module Program Sub Main(args As String()) ' 1. Create and populate a DataTable. This often comes from a database query. Dim dt As New DataTable("EmployeeData") dt.Columns.Add("EmployeeID", GetType(Integer)) dt.Columns.Add("FullName", GetType(String)) dt.Columns.Add("Department", GetType(String)) dt.Columns.Add("HireDate", GetType(Date)) dt.Rows.Add(101, "John Smith", "Sales", New Date(2022, 5, 20)) dt.Rows.Add(102, "Jane Doe", "Engineering", New Date(2021, 8, 15)) dt.Rows.Add(103, "Peter Jones", "Marketing", New Date(2023, 1, 10)) ' 2. Create a new workbook. Dim workbook As WorkBook = WorkBook.Create() Dim sheet As WorkSheet = workbook.CreateWorkSheet("Employees") ' 3. Write the DataTable to the worksheet starting at cell A1. ' The second parameter (True) indicates that column headers should be included. sheet.Write(dt, "A1", True) ' 4. Apply some styling for a more polished look. sheet.Columns.AutoFit() Dim headerRange = sheet.GetRange("A1:D1") headerRange.Style.Font.Bold = True headerRange.Style.SetBackgroundColor("#C5D9F1") ' Light Blue Dim dateColumn = sheet.GetRange("D2:D" & dt.Rows.Count + 1) dateColumn.Style.Format = "yyyy-mm-dd" ' 5. Save the workbook. workbook.SaveAs("EmployeeDatabaseExport.xlsx") End Sub End Module sheet.Write()方法在這種情況下非常高效。 它智能地將DataTable結構映射到工作表中,包括指定的列標題。 這是一個對於任何數據驅動應用程序來說都非常強大的功能,相比手動迭代節省了大量時間。 如需了解更多有關數據導入和導出的詳細信息,請參閱我們的教程 - 不同電子表格格式之間的轉換。 在寫入Excel文件時,我還能做什麼? 寫入數據僅僅是開始。 一個健壯的VB.NET Excel程式庫應提供一整套功能來自動化任何電子表格任務。 IronXL提供了廣泛的能力,包括: 公式:程序地設置和計算公式。 您可以將公式分配到單元格的sheet("C1").Value = "=SUM(A1:B1)"),IronXL將計算結果。 圖表:從工作表數據創建各種圖表以可視化信息。 數據驗證:對單元格施加規則,例如僅允許在特定範圍內的數字或從下拉列表中選擇的值。 條件格式化:根據單元格的值應用樣式,幫助突出重要數據點。 安全和保護:通過密碼保護工作表或整個工作簿來控制訪問和防止修改。 這些功能允許在您的.NET應用程序中直接實現複雜報告生成和數據分析工作流的全面自動化。 今天在VB.NET中開始寫入Excel文件 如展示,使用現代程式庫如IronXL,寫入Excel文件變得大大簡化。 通過避免Office Interop的複雜性和依賴性,您可以構建更可靠、高效且易於部署的應用程序。 無論您需要從零創建Excel文件,向現有報告追加數據,還是導出DataTable,IronXL提供了直觀而強大的API來高效完成任務。 您可以下載IronXL並試用免費試用授權,看看它如何輕鬆集成到您的專案中。 對於擁有更廣泛需求的用戶,請記住IronXL也是Iron Suite for .NET的一部分。 憑藉一個授權,您可以獲得一整套處理PDF、條碼、OCR和更多功能的程式庫,為任何.NET開發人員提供卓越的價值。 常見問題解答 我如何在 VB.NET 中無需使用 Office Interop 寫入 Excel 文件? 您可以使用 IronXL 庫在 VB.NET 中寫入 Excel 文件,而無需使用 Office Interop。IronXL 使您能夠無縫創建、閱讀和操作 Excel 文件而無需安裝 Microsoft Excel。 在 Excel 自動化中使用 IronXL 相較於 Office Interop 的好處是什麼? IronXL 提供了相對於 Office Interop 的顯著優勢,例如提高性能、更簡單的部署,以及在無需安裝 Microsoft Excel 的伺服器上運行的能力。它簡化了 .NET 應用程序中的 Excel 自動化任務。 如何在 VB.NET 項目中安裝 IronXL 以便操作 Excel 文件? 要在 VB.NET 項目中安裝 IronXL,請使用 Visual Studio 中的 NuGet 套件管理器,搜索 IronXL.Excel 並安裝。或者,使用 Package Manager Console 並輸入命令:Install-Package IronXL.Excel。 如何在 VB.NET 中創建新的 Excel 文件並插入數據? 使用 IronXL,您可以通過調用 WorkBook.Create() 創建新的 Excel 文件。訪問工作表並使用 A1 標記插入數據,例如 sheet("A1").Value = "Example Data"。使用 SaveAs() 方法保存文件。 如何使用 IronXL 將數據附加到現有的 Excel 文件? 要使用 IronXL 將數據附加到現有的 Excel 文件中,請使用 WorkBook.Load("filename.xlsx") 加載該工作簿。通過 sheet.Info.LastRowUsed 確定下一個空行並插入新數據。使用 workbook.Save() 保存修改。 在 VB.NET 中將 DataTable 導出到 Excel 表格中是否可行? 可以的,IronXL 簡化了將 DataTable 導出到 Excel 表格中。使用 sheet.Write() 方法可高效地將整個表格傳輸到工作表。 IronXL 能夠處理什麼格式的 Excel 文件? IronXL 支持多種 Excel 文件格式,包括 .xlsx、.xls、.csv 和 .tsv,允許靈活處理各種類型的電子表格數據。 我可以使用 IronXL 格式化 Excel 單元格並使用公式嗎? 可以的,IronXL 提供了豐富的格式化和公式支持。您可以以程式化方式調整字體、顏色、邊框和數字格式,並設置 Excel 公式如 "=SUM(A1:A10)" 進行計算。 Jacob Mellor 立即與工程團隊聊天 首席技術官 Jacob Mellor是Iron Software的首席技術官,也是開創C# PDF技術的前瞻性工程師。作為Iron Software核心代碼庫的原始開發者,他自公司成立以來就塑造了公司的產品架構,並與CEO Cameron Rimington將公司轉型為服務NASA、Tesla以及全球政府機構的50多人公司。Jacob擁有曼徹斯特大學土木工程一級榮譽學士學位(1998年–2001年)。他於1999年在倫敦開立首家軟體公司,並於2005年建立了他的第一個.NET組件,專注於解決Microsoft生態系統中的複雜問題。他的旗艦作品IronPDF和Iron Suite .NET程式庫全球已獲得超過3000萬次NuGet安裝,他的基礎代碼不斷在全球各地驅動開發者工具。擁有25年以上的商業經驗和41年的編碼專業知識,Jacob仍然專注於推動企業級C#、Java和Python PDF技術的創新,同時指導下一代技術領導者。 相關文章 更新2026年3月1日 在ASP.NET C#中下載Excel文件:將數據匯出到XLSX,CSV和更多格式 使用C#和IronXL在ASP.NET Core中下載Excel文件。從MVC控制器中匯出數據到XLSX, CSV和XML,附有MemoryStream和File()返回。包括代碼範例。 閱讀更多 更新2026年3月1日 如何在Blazor中使用IronXL匯出Excel文件 學習如何在Blazor伺服器應用程式中使用IronXL将數據匯出到Excel。此指南涵蓋專案設置、服務設計、條件格式化、多表報告和錯誤處理,附有完整的C#代碼範例。 閱讀更多 更新2026年2月27日 如何在C#中而不是使用StreamReader來讀取Excel文件 了解StreamReader為何無法讀取Excel文件,並學習如何使用IronXL加載來自磁盤或內存流的XLSX和XLS工作簿。 閱讀更多 如何在 C# 中將數據集轉換為 CSV如何在 Excel 中凍結行(初...
更新2026年3月1日 在ASP.NET C#中下載Excel文件:將數據匯出到XLSX,CSV和更多格式 使用C#和IronXL在ASP.NET Core中下載Excel文件。從MVC控制器中匯出數據到XLSX, CSV和XML,附有MemoryStream和File()返回。包括代碼範例。 閱讀更多
更新2026年3月1日 如何在Blazor中使用IronXL匯出Excel文件 學習如何在Blazor伺服器應用程式中使用IronXL将數據匯出到Excel。此指南涵蓋專案設置、服務設計、條件格式化、多表報告和錯誤處理,附有完整的C#代碼範例。 閱讀更多
更新2026年2月27日 如何在C#中而不是使用StreamReader來讀取Excel文件 了解StreamReader為何無法讀取Excel文件,並學習如何使用IronXL加載來自磁盤或內存流的XLSX和XLS工作簿。 閱讀更多