使用IRONXL

C# 將 DataTable 快速匯出到 Excel 的方法

已更新 2024年9月26日
分享:

在處理電子表格時,Microsoft Excel 應用程式是一款流行的電子表格工具,專為以表格格式管理大量數據而設計。 它提供強大的功能,例如複雜計算、通過圖表和圖形進行數據可視化、樞紐分析表,並支持通過應用程式用的 Visual Basic 進行自動化。 (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、二進位和位元組陣列。 它還具有強大的工作簿安全功能,例如添加權限和密碼,並允許您編輯工作簿的元數據。

將數據從資料表導出至 Excel 文件的步驟

先決條件

若要在 C# 中使用 IronXL 將資料表中的數據匯出到 Excel 文件,我們需要在本地電腦上安裝以下元件。 讓我們一個一個來看看它們。

  1. Visual Studio - Visual Studio 是用於 C# 編程的集成開發環境,且必須安裝。 您可以從下載並安裝最新版 Visual Studio 網站.

    • 一旦設置好 IDE,需要創建一個控制台應用程序/Windows 窗體,以便幫助將數據表導出到 Excel。 以下的截圖顯示如何建立一個專案。

      建立專案

      現在,選擇您的專案類型。 在我們的範例中,我們將創建一個主控台應用程式。

      控制台應用程序

      為您的專案命名並選擇保存的位置。

      命名專案

      最後,選擇您的 .NET Framework,然後點擊「建立」。

      .NET Framework

      在上一個截圖中點擊創建後,名為 "DemoApp" 的項目已被創建。

  2. IronXL 函式庫 - 必須在 Visual Studio 專案中下載並安裝 IronXL 函式庫。 有多種方法可以做到。

    • 使用 Visual Studio - 它提供 NuGet 套件管理器來安裝 IronXL。 您可以通過工具菜單或解決方案資源管理器訪問它。 以下截圖有助於安裝IronXL。 首先,導航到頂部欄的「工具」,或在解決方案資源管理器中右鍵點擊。

      解決方案總管

      工具 - NuGet 套件管理器

      進入「管理解決方案的 NuGet 套件」,然後搜尋 IronXL。 然後,您只需按下「Install」,IronXL 庫就會被添加到您的專案中。

      瀏覽 IronXL

    • 開發人員命令提示字元 - 從 Visual Studio 工具選單或 Visual Studio 資料夾中開啟開發人員命令提示字元。 輸入以下命令以在您的專案中下載並安裝IronXL:
PM > Install-Package IronXL.Excel
PM > Install-Package IronXL.Excel
'INSTANT VB TODO TASK: The following line uses invalid syntax:
'PM > Install-Package IronXL.Excel
VB   C#
  1. 添加必要的命名空間 - 要創建數據表並使用IronXL,應在Program.cs文件的頂部引用兩者。
using IronXL; //add reference...
   using System.Data;
using IronXL; //add reference...
   using System.Data;
Imports IronXL 'add reference...
   Imports System.Data
VB   C#

一旦所有的前置條件滿足後,就可以將資料從資料表匯出至 Excel 工作表。

在 C# 中創建 DataTable

以下程式碼創建一個新的資料表,具有兩個欄位標題和多行資料:

//new datatable dt...
DataTable dt = new DataTable();
//add column names...
dt.Columns.Add("Animal");
dt.Columns.Add("Sound");
dt.Rows.Add("Lion", "Roars"); // first row...
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");
//new datatable dt...
DataTable dt = new DataTable();
//add column names...
dt.Columns.Add("Animal");
dt.Columns.Add("Sound");
dt.Rows.Add("Lion", "Roars"); // first row...
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");
'new datatable dt...
Dim dt As New DataTable()
'add column names...
dt.Columns.Add("Animal")
dt.Columns.Add("Sound")
dt.Rows.Add("Lion", "Roars") ' first row...
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")
VB   C#

首先,我們創建一個名為 "dt" 的 DataTable。 然後,使用 Columns.Add,我們可以按名稱將指定數量的欄位添加到數據表中。在我們的範例中,我們有兩個名為「Animal」和「Sound」的欄位。 然後我們使用 Rows.Add 來添加新行,將每行的內容放置在括號內。 該內容已被逗號分隔,每個字串以列分隔。

使用 IronXL 在 C# 中建立 Excel 文件

從頭創建 Excel 檔案類型使用 IronXL 是一個兩步驟的過程,而且在 C# 中實現非常簡單。 IronXL首先創建一個Excel工作簿,然後幫助添加工作表。 以下範例代碼展示了如何創建工作簿及工作表:

//create new workbook...
WorkBook wb = WorkBook.Create(ExcelFileFormat.XLSX);
WorkSheet ws = wb.DefaultWorkSheet;
//create new workbook...
WorkBook wb = WorkBook.Create(ExcelFileFormat.XLSX);
WorkSheet ws = wb.DefaultWorkSheet;
'create new workbook...
Dim wb As WorkBook = WorkBook.Create(ExcelFileFormat.XLSX)
Dim ws As WorkSheet = wb.DefaultWorkSheet
VB   C#

使用 IronXL 將 DataTable 資料匯出到 Excel 工作表

使用 IronXL 將值添加到工作表可以簡化整個過程,並且只需少量程式碼即可完成此任務。 在這裡,我們將學習如何 從datatable匯出數據 在前一部分中建立的內容添加到新建的Excel工作表中。 讓我們逐步查看這段程式碼。

將欄位標題新增至 Excel 工作表

ws["A1"].Value = dt.Columns[0].ToString();
ws["B1"].Value = dt.Columns[1].ToString();
int rowCount = 2;
ws["A1"].Value = dt.Columns[0].ToString();
ws["B1"].Value = dt.Columns[1].ToString();
int rowCount = 2;
ws("A1").Value = dt.Columns(0).ToString()
ws("B1").Value = dt.Columns(1).ToString()
Dim rowCount As Integer = 2
VB   C#

在上述代碼中,Excel工作表的欄位“A1”被賦值為資料表中索引0的第1欄,而下一個Excel欄位“B1”的值則來自資料表中索引1的第2欄。 rowCount 變數設為值 2,從資料表的第二列開始讀取行,這確保不計算標題行。

將行新增至 Excel 工作表

以下程式碼將從資料表中讀取每一行,並將其分配到 Excel 文件的新行中:

foreach (DataRow row in dt.Rows)
{
    ws["A" + (rowCount)].Value = row[0].ToString();
    ws["B" + (rowCount)].Value = row[1].ToString();
    rowCount++;
}
foreach (DataRow row in dt.Rows)
{
    ws["A" + (rowCount)].Value = row[0].ToString();
    ws["B" + (rowCount)].Value = row[1].ToString();
    rowCount++;
}
For Each row As DataRow In dt.Rows
	ws("A" & (rowCount)).Value = row(0).ToString()
	ws("B" & (rowCount)).Value = row(1).ToString()
	rowCount += 1
Next row
VB   C#

每次增加rowCount變量,使系統能夠從新行進行讀取。 資料表到Excel 上述代碼中的工作表儲存格。

保存 Excel 文件

最後,使用 SaveAs 保存 Excel 文件。()** 方法。

wb.SaveAs("DataTable_to_Excel_IronXL.xlsx");
wb.SaveAs("DataTable_to_Excel_IronXL.xlsx");
wb.SaveAs("DataTable_to_Excel_IronXL.xlsx")
VB   C#

該文件也可以儲存為其他格式,例如 CSV。 (逗號分隔值), JSON, XML.

wb.SaveAsCsv("DataTable_to_Excel_IronXL.csv");
wb.SaveAsJson("DataTable_to_Excel_IronXL.json");
wb.SaveAsXml("DataTable_to_Excel_IronXL.xml");
wb.SaveAsCsv("DataTable_to_Excel_IronXL.csv");
wb.SaveAsJson("DataTable_to_Excel_IronXL.json");
wb.SaveAsXml("DataTable_to_Excel_IronXL.xml");
wb.SaveAsCsv("DataTable_to_Excel_IronXL.csv")
wb.SaveAsJson("DataTable_to_Excel_IronXL.json")
wb.SaveAsXml("DataTable_to_Excel_IronXL.xml")
VB   C#

您也可以使用自訂分隔符來儲存它。

輸出

該文件的最終輸出如下所示:

DataTable 輸出到 Excel

摘要

在本文中,我們展示了如何在 C# 中創建帶有列和行的 DataTable,然後使用 IronXL 生成帶有默認工作表的 Excel 工作簿。 接著,我們成功將 DataTable 中的表格數據匯出到 Excel 檔案,並以 .xlsx 格式保存。

IronXL 是一個使用者友好的 C# 函式庫,允許開發人員無縫地處理 Excel 文件,即使未安裝 MS Excel 也能運作。 它支持從各種格式(如 CSV 檔案)匯出數據,以便進一步操作和計算。

若要了解有關 IronXL 及其強大功能集的更多信息,請務必查看其廣泛的 文檔. 想親自試試看嗎? IronXL 也提供一個 免費試用 全面訪問所有功能,因此您可以立即開始探索這個強大的庫如何改善您的電子表格項目。!

< 上一頁
如何在 VB.NET 中將資料表匯出到 Excel
下一個 >
如何在C#中读取Excel文件

準備開始了嗎? 版本: 2024.10 剛剛發布

免費 NuGet 下載 總下載次數: 1,023,839 查看許可證 >