跳至頁尾內容
使用 IRONXL

C# 將資料表匯出到 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
$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");
$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;
$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;
$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++;
}
$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

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

輸出

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

將資料表輸出到 Excel

摘要

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

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

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

常見問題解答

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

您可以使用 IronXL .NET Excel 函式庫有效率地將資料表匯出到 Excel。此程式庫可讓您建立和操作 Excel 文件,而無需使用 Microsoft Office Interop。

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

要使用 IronXL 將 DataTable 匯出到 Excel,您需要安裝 Visual Studio,並透過 NuGet 套件管理器將 IronXL 庫新增至您的專案。

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

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

如何將資料表的資料匯出到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 的完整文檔,包括指南和範例,可在其官方網站上找到。

喬迪·巴迪亞
軟體工程師
喬迪精通Python、C#和C++,除了在Iron Software運用這些技能外,他還從事遊戲程式設計。他參與產品測試、產品開發和研究等工作,為產品的持續改進做出了巨大貢獻。豐富的經驗讓他始終保持挑戰性和工作熱情,他表示這是他最喜歡在Iron Software工作的原因之一。喬迪在佛羅裡達州邁阿密長大,畢業於佛羅裡達大學,主修電腦科學和統計學。