跳過到頁腳內容
使用 IRONXL

C# 將 DataTable 高速導出到 Excel 的方法

在使用電子表格時,Microsoft Excel 應用程式是一款流行的電子表格工具,旨在以表格格式管理大型資料集。 它提供了強大的功能,例如複雜的計算、透過圖表和圖形進行資料視覺化、資料透視表,以及透過 Visual Basic for Applications (VBA) 實現自動化。 憑藉其強大的資料分析和視覺化工具,Excel 已成為各行各業的首選工具。 使用 Excel,您可以輕鬆建立、編輯、檢視和分享文件,從而簡化您的資料管理任務。

在 C# 中,ADO.NET 庫中的 DataTable 物件表示程式中的表格數據,很像 Excel 工作表。 它將資料整理成行和列,以便於操作和匯出。 與 Excel 一樣,DataTable 支援篩選、排序和格式化選項,使其成為 C# 中管理資料範圍的首選工具。 但是,DataTable 是在運行時創建的,除非匯出為更永久的格式(例如 Excel 檔案或 CSV 檔案),否則在關閉應用程式時其資料將會遺失。

今天,我們將探討如何在 C# 中建立 DataTable,並使用功能強大的 .NET Excel 庫 IronXL 將其資料匯出到 Excel 文件。

IronXL:一個 .NET Excel 函式庫

IronXL是一個 C# .NET 函式庫,它簡化了建立 Excel 檔案的過程。 使用 IronXL,您可以建立新的電子表格、編輯現有的電子表格、使用 Excel 公式、設定電子表格儲存格的樣式等等。 IronXL 功能豐富,讓以程式設計方式處理 Excel 檔案變得輕而易舉,最重要的是,它無需 Microsoft Office Interop 即可運作。這意味著無需安裝 Microsoft Office 或任何其他特殊依賴項。

使用 IronXL,您可以將資料儲存或匯出為不同的格式,例如 XLS 和 XLSX、CSV 資料和 TSV、JSON、XML 和 HTML、二進位和位元組數組。 它還具有強大的工作簿安全功能,例如新增權限和密碼,並允許您編輯工作簿元資料。

將資料表資料匯出到 Excel 檔案的步驟

先決條件

要在 C# 中使用 IronXL 將資料從 DataTable 匯出到 Excel 文件,我們需要在本機電腦上安裝下列元件。 讓我們逐一來看。

  1. Visual Studio - Visual Studio 是 C# 程式設計的 IDE,必須安裝。 您可以從Visual Studio 網站下載並安裝最新版本。

    • 設定好 IDE 後,需要建立一個控制台應用程式/Windows 窗體,以便將資料表匯出到 Excel。 以下截圖展示如何建立項目。

      創建專案

      現在,請選擇您的項目類型。 在我們的範例中,我們將建立一個控制台應用程式。

      控制台應用程式

      為項目命名並選擇儲存位置。

      項目名稱

      最後,選擇您的 .NET Framework,然後按一下"建立"。

      .NET框架

      在最後一個螢幕截圖中點擊"建立"後,將建立名為"DemoApp"的項目。

  2. IronXL 庫- 必須下載 IronXL 庫並安裝到 Visual Studio 專案中。 有很多方法可以做到這一點。

    *使用 Visual Studio - 它提供了 NuGet 套件管理器來安裝 IronXL。 您可以透過"工具"功能表或"解決方案資源管理器"來存取它。 以下截圖有助於安裝 IronXL。 首先,導覽至頂部欄中的"工具",或在解決方案資源管理器中按一下滑鼠右鍵。

    解決方案探索器

    工具 - NuGet 套件管理器

    前往"管理解決方案的 NuGet 套件",然後搜尋 IronXL。 然後,您只需按下"安裝"按鈕,IronXL 庫就會新增到您的專案中。

    瀏覽 IronXL

    *開發人員命令提示字元- 從 Visual Studio 工具功能表或 Visual Studio 資料夾開啟開發人員命令提示字元。 輸入以下命令,即可在您的專案中下載並安裝 IronXL:

     PM > Install-Package IronXL.Excel
     PM > Install-Package IronXL.Excel
    SHELL

    *直接從 NuGet 套件管理員取得 - 存取此 URLhttps://www.nuget.org/packages/ironxl.excel/下載 IronXL。

3.新增必要的命名空間- 要建立 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
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

所有先決條件滿足後,就可以將資料從資料表匯出到 Excel 表格了。

在 C# 中建立 DataTable

以下程式碼會建立一個包含兩個列標題和多行的新資料表:

// 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");
' Create a new DataTable object
Dim dt As 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"的新資料表。 然後,使用Columns.Add ,我們可以按名稱向資料表中新增指定數量的欄位; 在我們的範例中,我們有兩列,分別名為"動物"和"聲音"。 然後我們使用Rows.Add新增一行,並將每一行的內容放在括號內。 內容以逗號分隔,每列分隔一個字串。

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

使用 IronXL 從頭開始建立 Excel 檔案類型時,這是一個兩步驟過程,在 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;
' Create a new workbook in XLSX format
Dim wb As WorkBook = WorkBook.Create(ExcelFileFormat.XLSX)
' Reference to the default worksheet in the workbook
Dim ws As WorkSheet = wb.DefaultWorkSheet
$vbLabelText   $csharpLabel

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

使用 IronXL 在工作表中新增值可以簡化整個過程,因為它只需編寫最少的程式碼即可完成此任務。 在這裡我們將學習如何將上一節中建立的資料表中的資料匯出到新建立的 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;
' 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
Dim rowCount As Integer = 2
$vbLabelText   $csharpLabel

在上面的程式碼中,Excel 工作表的"A1"列被賦值為資料表第 1 列索引為 0 的值,Excel 工作表的下一個"B1"列被賦值為資料表第 2 列索引為 1 的值。 rowCount變數的值設定為 2,表示從 DataTable 的第二行開始讀取行; 這樣可以確保我們不會將標題行計算在內。

在 Excel 工作表中新增一行

以下程式碼將從資料表中讀取每一行,並將其指派給 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++;
}
' Iterate through each row in the DataTable and add to Excel worksheet
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
$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");
' 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");
' 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

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

輸出

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

將資料表輸出到 Excel

摘要

在本文中,我們示範如何在 C# 中建立具有列和行的 DataTable,然後使用 IronXL 產生具有預設工作表的 Excel 工作簿。 然後,我們成功地將資料表中的表格資料匯出到 Excel 檔案中,並將其儲存為 .xlsx 格式。

IronXL是一個使用者友好的 C# 庫,即使沒有安裝 MS Excel,開發人員也可以無縫地處理 Excel 檔案。 它支援從各種格式(例如 CSV 檔案)匯出數據,以便進行進一步的處理和計算。

要了解有關 IronXL 及其強大功能集的更多信息,請務必查看其詳盡的文檔。 想親自體驗一下嗎? IronXL 還提供免費試用版,可完全存取所有功能,因此您可以立即開始探索這個強大的庫如何改進您的電子表格項目!

常見問題解答

如何使用 C# 將 DataTable 快速匯出至 Excel?

您可以使用 IronXL .NET Excel 函式庫將 DataTable 有效地匯出到 Excel。這個函式庫可讓您建立和操作 Excel 檔案,而不需要 Microsoft Office Interop。

在 C# 中將 DataTable 匯出至 Excel 需要哪些工具?

若要使用 IronXL 將 DataTable 匯出至 Excel,您需要安裝 Visual Studio,並透過 NuGet Package Manager 將 IronXL 函式庫加入專案中。

如何在 C# 應用程式中建立 DataTable?

在 C# 中,您透過實體化一個新的 DataTable 物件來建立 DataTable。然後,您可以使用 Columns.Add 新增欄位,並使用 Rows.Add 填充行。

將 DataTable 的資料匯出到 Excel 檔案的方法是什麼?

若要將資料從 DataTable 匯出到 Excel 檔案,請使用 IronXL.Excel 功能遍歷每個 DataTable 行,並將值指定到對應的 Excel 單元格。

我可以使用 .NET 函式庫以不同格式儲存 Excel 檔案嗎?

是的,使用 IronXL.Excel,您可以將 Excel 檔案儲存為各種格式,包括 XLSX、CSV、JSON 和 XML,甚至可以指定自訂的分隔符。

我需要 Microsoft Office 來使用 C# 函式庫管理 Excel 檔案嗎?

不,您不需要安裝 Microsoft Office。IronXL.Excel 可讓您以程式化的方式管理 Excel 檔案,而無需依賴 Microsoft Office Interop。

使用 .NET Excel 函式庫有哪些優點?

IronXL.Excel 提供許多優點,例如建立和編輯 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 在佛罗里达州迈阿密长大,曾在佛罗里达大学学习计算机科学和统计学。