使用 IRONXL C# 將 DataTable 高速導出到 Excel 的方法 Jordi Bardia 更新:2025年7月28日 下載 IronXL NuGet 下載 DLL 下載 開始免費試用 LLM副本 LLM副本 將頁面複製為 Markdown 格式,用於 LLMs 在 ChatGPT 中打開 請向 ChatGPT 諮詢此頁面 在雙子座打開 請向 Gemini 詢問此頁面 在 Grok 中打開 向 Grok 詢問此頁面 打開困惑 向 Perplexity 詢問有關此頁面的信息 分享 在 Facebook 上分享 分享到 X(Twitter) 在 LinkedIn 上分享 複製連結 電子郵件文章 在處理試算表時,Microsoft Excel應用程式是一個受歡迎的試算表工具,專為以表格式管理大型數據集而設計。 它提供強大功能,例如複雜計算、透過圖表和圖形進行數據可視化、樞紐分析表,以及透過Visual Basic for Applications (VBA)支援自動化。 其強大的數據分析和可視化工具使Excel成為各行各業的首選。 使用Excel,您可以輕鬆創建、編輯、查看和分享文件,簡化您的數據管理任務。 在C#中,ADO.NET程式庫中的DataTable物件在程式內表示表格式數據,就像Excel工作表一樣。 它將數據組織成行和列,允許輕鬆操作和導出。 就像Excel一樣,DataTable支持篩選、排序和格式化選項,使其成為在C#中管理數據範圍的一個好工具。 然而,DataTable是在運行時創建的,除非導出到更永久的格式(例如Excel文件或CSV文件),否則當應用程式關閉時其數據會丟失。 今天,我們將探索如何在C#中創建DataTable並使用IronXL(一個強大的.NET Excel程式庫)將其數據導出到Excel文檔中。 IronXL: 一個.NET Excel 程式庫 IronXL 是一個C# .NET 程式庫,簡化了創建Excel文件的過程。 使用IronXL,您可以創建新的試算表、編輯現有的、與Excel公式一起使用、設置試算表的單元格樣式等等。 其豐富的功能範圍使以程式方式處理Excel文件變得輕鬆最重要的是,IronXL在沒有Microsoft Office Interop的情況下工作。這意味著無需安裝Microsoft Office或任何其他特殊的依賴項。 使用IronXL,您可以將資料保存或導出到不同的格式,如XLS和XLSX、CSV數據和TSV、JSON、XML和HTML、二進制和字節數組。 它還擁有強大的工作簿安全功能,例如增加權限和密碼,允許您編輯工作簿的元數據。 從DataTable導出數據到Excel文件的步驟 先決條件 要在C#中使用IronXL從DataTable導出數據到Excel文件,我們需要在本地計算機上安裝以下組件。 讓我們一個一個地看看它們。 Visual Studio - Visual Studio是C#編程的IDE,必須安裝。 您可以從Visual Studio網站下載並安裝最新版本。 一旦設置了IDE,則需要創建一個主控台應用程式/Windows窗體,以幫助將DataTable導出到Excel。 以下截圖顯示了如何創建一個專案。 現在,選擇您的專案類型。 在我們的示例中,我們將創建一個主控台應用。 命名您的專案並選擇它將保存的位置。 最後,選擇您的.NET Framework,然後點擊"創建"。 在最後一個截圖中點擊創建後,名為"DemoApp"的專案被創建。 IronXL程式庫 - 必須在Visual Studio專案中下載和安裝IronXL程式庫。 有多種方法可以做到這一點。 使用Visual Studio - 它提供NuGet套件管理器來安裝IronXL。 您可以通過工具菜單或解決方案資源管理器訪問它。 以下截圖有助於安裝IronXL。 首先,導航到頂部欄的"工具",或者在解決方案資源管理器中右鍵單擊。 轉到管理解決方案的NuGet包並搜尋IronXL。 然後,您只需按"安裝"即可將IronXL程式庫添加到您的專案中。 開發者命令提示符 - 從Visual Studio工具菜單或從Visual Studio文件夾打開開發者命令提示符。 在您的專案中輸入以下命令以下載和安裝IronXL: PM > Install-Package IronXl.Excel PM > Install-Package IronXl.Excel SHELL 直接從NuGet包管理器 - 導覽到此URL https://www.nuget.org/packages/ironxl.excel/ 以下載IronXL。 添加必要的命名空間 - 要創建DataTable並使用IronXL,兩者都應在Program.cs文件的頂部引用。 using IronXL; // Add reference to the IronXL library using System.Data; // Add reference to System.Data for DataTable using IronXL; // Add reference to the IronXL library using System.Data; // Add reference to System.Data for DataTable $vbLabelText $csharpLabel 一旦滿足所有先決條件,就該將數據從DataTable導出到Excel工作表了。 Create a DataTable in C 以下代碼創建一個帶有兩個列標題和多行的新數據表: // Create a new DataTable object DataTable dt = new DataTable(); // Add column names to the DataTable dt.Columns.Add("Animal"); dt.Columns.Add("Sound"); // Add rows representing different animals and their sounds dt.Rows.Add("Lion", "Roars"); dt.Rows.Add("Dog", "Barks"); dt.Rows.Add("Cat", "Meows"); dt.Rows.Add("Goat", "Bleats"); dt.Rows.Add("Wolf", "Howls"); dt.Rows.Add("Cheetah", "Purrs"); // Create a new DataTable object DataTable dt = new DataTable(); // Add column names to the DataTable dt.Columns.Add("Animal"); dt.Columns.Add("Sound"); // Add rows representing different animals and their sounds dt.Rows.Add("Lion", "Roars"); dt.Rows.Add("Dog", "Barks"); dt.Rows.Add("Cat", "Meows"); dt.Rows.Add("Goat", "Bleats"); dt.Rows.Add("Wolf", "Howls"); dt.Rows.Add("Cheetah", "Purrs"); $vbLabelText $csharpLabel 首先,創建一個名為"dt"的新DataTable。 然後使用Columns.Add,我們可以通過名稱向數據表添加指定數量的列; 在我們的示例中,我們有兩列,名為"Animal"和"Sound"。 然後我們使用Rows.Add來添加新行,將每行的內容放在括號中。 內容用逗號分隔,將每個字符串按列分隔。 Create Excel File using IronXL in C 從頭創建Excel文件類型使用IronXL的過程分為兩步,在C#中實現非常容易。 IronXL首先創建一個Excel工作簿,然後幫助添加工作表。 以下示例代碼展示了如何創建一個包含工作表的工作簿: // Create a new workbook in XLSX format WorkBook wb = WorkBook.Create(ExcelFileFormat.XLSX); // Reference to the default worksheet in the workbook WorkSheet ws = wb.DefaultWorkSheet; // Create a new workbook in XLSX format WorkBook wb = WorkBook.Create(ExcelFileFormat.XLSX); // Reference to the default worksheet in the workbook WorkSheet ws = wb.DefaultWorkSheet; $vbLabelText $csharpLabel 使用IronXL將數據從DataTable導出到Excel工作表 利用IronXL向工作表添加值簡化了整個過程,它能夠用最少的代碼完成這項任務。 在這裡,我們將學習如何將先前部分創建的DataTable中的數據導出到新創建的Excel工作表。 讓我們一步步看看代碼。 添加列標題到Excel工作表 // Assign DataTable column names to the first row of the Excel worksheet ws["A1"].Value = dt.Columns[0].ToString(); ws["B1"].Value = dt.Columns[1].ToString(); // Start adding data from the second row int rowCount = 2; // Assign DataTable column names to the first row of the Excel worksheet ws["A1"].Value = dt.Columns[0].ToString(); ws["B1"].Value = dt.Columns[1].ToString(); // Start adding data from the second row int rowCount = 2; $vbLabelText $csharpLabel 在上面的代碼中,Excel表的"A1"列被賦值為DataTable索引0的列1的值,接下來的Excel列"B1"值被賦值為DataTable索引1的列2的值。 rowCount變量被設置為2的值,以從第二行開始從DataTable中讀取行; 這確保我們不會計入標題行。 添加行到Excel工作表 以下代碼將從DataTable中讀取每一行並將其分配到Excel文件中的新行: // Iterate through each row in the DataTable and add to Excel worksheet foreach (DataRow row in dt.Rows) { ws["A" + (rowCount)].Value = row[0].ToString(); ws["B" + (rowCount)].Value = row[1].ToString(); rowCount++; } // Iterate through each row in the DataTable and add to Excel worksheet foreach (DataRow row in dt.Rows) { ws["A" + (rowCount)].Value = row[0].ToString(); ws["B" + (rowCount)].Value = row[1].ToString(); rowCount++; } $vbLabelText $csharpLabel rowCount變量每次都會遞增,以便在上面的代碼中從DataTable到Excel工作表單元格中讀取新行。 保存Excel文件 最後,使用SaveAs()方法保存Excel文件。 // Save the workbook to a file wb.SaveAs("DataTable_to_Excel_IronXL.xlsx"); // Save the workbook to a file wb.SaveAs("DataTable_to_Excel_IronXL.xlsx"); $vbLabelText $csharpLabel 該文件也可以另存為其他格式,例如CSV(逗號分隔值)、JSON、XML。 // Save the workbook in different file formats wb.SaveAsCsv("DataTable_to_Excel_IronXL.csv"); wb.SaveAsJson("DataTable_to_Excel_IronXL.json"); wb.SaveAsXml("DataTable_to_Excel_IronXL.xml"); // Save the workbook in different file formats wb.SaveAsCsv("DataTable_to_Excel_IronXL.csv"); wb.SaveAsJson("DataTable_to_Excel_IronXL.json"); wb.SaveAsXml("DataTable_to_Excel_IronXL.xml"); $vbLabelText $csharpLabel 您也可以使用自定義分隔符保存它。 輸出 文件的最終輸出如下: 總結 在這篇文章中,我們展示如何在C#中創建帶有列和行的DataTable,接著使用IronXL生成帶有默認工作表的Excel工作簿。 然後我們成功地將DataTable中的表格式數據導出到Excel文件並將其保存為.xlsx格式。 IronXL是一個用戶友好的 C# 程式庫,即使沒有安裝MS Excel,也可以讓開發者無縫處理Excel文件。 它支持從多種格式導出數據,例如CSV文件,以進行進一步的操作和計算。 要了解有關IronXL及其強大功能的更多信息,請務必查看其詳細的文檔。 想自己試試嗎? IronXL還提供一個免費試用,允許完全訪問所有功能,這樣您可以立即開始探索這個強大的程式庫如何改善您的試算表專案! 常見問題解答 如何使用 C# 快速將 DataTable 匯出到 Excel? 您可以使用 IronXL .NET Excel 庫來高效地將 DataTable 匯出到 Excel。這個庫允許您創建和操作 Excel 文件,而無需用到 Microsoft Office Interop。 匯出 DataTable 到 Excel 在 C# 中需要哪些工具? 要使用 IronXL 將 DataTable 匯出到 Excel,您需要安裝 Visual Studio 並使用 NuGet 套件管理器將 IronXL 庫添加到您的項目。 如何在 C# 應用程式中創建 DataTable? 在 C# 中,您可以實例化一個新的 DataTable 對象來創建 DataTable。然後可以使用 Columns.Add 添加列,並使用 Rows.Add 填充行。 如何將 DataTable 的數據匯出到 Excel 文件中? 要將數據從 DataTable 匯出到 Excel 文件中,請遍歷每個 DataTable 行,並使用 IronXL 功能將值分配給相應的 Excel 單元格。 我可以使用 .NET 庫將 Excel 文件保存為不同格式嗎? 是的,使用 IronXL,您可以將 Excel 文件保存為包括 XLSX、CSV、JSON 和 XML 在內的多種格式,甚至可以指定自定義分隔符。 我需要 Microsoft Office 來管理具有 C# 庫的 Excel 文件嗎? 不需要安裝 Microsoft Office。IronXL 使您能以編程方式管理 Excel 文件,而不依賴於 Microsoft Office Interop。 .NET Excel 庫有哪些優勢? IronXL 提供創建和編輯 Excel 文件、應用公式、設置樣式單元格以及匯出數據為多個格式等多項優勢。它還支持如密碼保護等安全功能。 以程式方式保存 Excel 活頁簿需要哪些步驟? 要使用 IronXL 保存 Excel 活頁簿,請使用 SaveAs 方法,選擇所需的文件格式,如 XLSX、CSV 或 JSON。 有沒有可用的 .NET Excel 庫試用版? 有,IronXL 提供了一個免費試用版,讓您可以全面訪問其功能,允許開發人員在提交之前測試其能力。 在哪裡可以找到使用 .NET Excel 庫的詳細文檔? IronXL 的全面文檔,包括指南和示例,可以在他們的官方網站找到。 Jordi Bardia 立即與工程團隊聊天 軟體工程師 Jordi 在 Python、C# 和 C++ 上最得心應手,當他不在 Iron Software 展現技術時,便在做遊戲編程。在分担產品测测试,產品開發和研究的责任時,Jordi 為持续的產品改進增值。他说这种多样化的经验使他受到挑战并保持参与, 而这也是他与 Iron Software 中工作一大乐趣。Jordi 在佛罗里达州迈阿密长大,曾在佛罗里达大学学习计算机科学和统计学。 相關文章 更新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工作簿。 閱讀更多 如何在 VB.NET 中將 DataTable 導出到 Excel如何在 C# 中讀取 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工作簿。 閱讀更多