跳過到頁腳內容
使用 IRONXL
如何將資料表轉換為 Excel 檔案

在 C# 中將 DataTable 導出到 Excel(代碼範例教程)

以程式方式修改 Excel 電子表格可能比較困難,主要有兩個原因。 首先,在使用電子表格時,使用者必須保持一致的介面和文件結構,但這並不總是那麼容易。 其次,在特定情況下,尤其是涉及複雜計算時,並不總是清楚哪些程式碼能夠正常運作。 以程式設計方式建立 Excel 檔案之所以困難,原因有很多。 程式設計師必須先將 Excel 文件中的資料轉換為可讀格式,然後再解析數據,最後再將其解析回來,這更加困難。 我已經找到了解決這個問題的方法。 我將教你如何使用 IronXL .NET Excel 庫輕鬆建立 Excel 文件,並透過程式設計將 DataTable 匯出到 Excel 工作表中。 讓我們開始吧:

IronXL 功能

  • IronXL 可在多種作業系統上運行,包括 Windows、 LinuxmacOS
  • IronXL 支援幾乎所有 .NET Framework,包括控制台、Windows 窗體應用程式和Web 應用程式
  • IronXL 讓讀取 Excel 檔案變得簡單輕鬆。
  • 使用 IronXL,我們可以載入、編輯、匯出資料表,匯出資料集,並讀取 Excel 檔案格式,例如 XLSX 檔案、XLS、CSV、TSV、XLST、XLSM 檔案等。
  • IronXL 允許我們保存和匯出各種副檔名的文件,包括 XLS、CSV、TSV、JSON、XLSX 等。
  • IronXL 可以建立Excel 公式。 IronXL 支援文字、數字、公式、日期、貨幣、百分比和其他Excel 儲存格資料格式。 它還提供了多種排序選項,例如按範圍、列和行排序等。
  • IronXL 中的儲存格樣式包括字體、大小、背景圖案、邊框和對齊方式等。
  • 我們可以使用 IronXL 讀取和匯出 Excel 檔案中的資料。
  • IronXL 不需要在您的伺服器上安裝 Excel 或 Interop。 IronXL API 比 Microsoft Office、Interop 和 Excel 更快、更容易使用。

1. 在 Visual Studio 中建立新項目

要使用 IronXL 函式庫,我們必須在 Visual Studio 中建立一個 .NET 專案。 您可以使用任何版本的 Visual Studio,但建議使用最新版本。 您可以根據自身需求建立類似 Windows Forms 的應用程式或不同的專案範本。 為了簡單起見,本教學將使用控制台應用程式。

如何使用 C# 將資料表中的大量資料匯出到 Excel?圖 1:在 Visual Studio 中建立一個新的專案 UI 在 Visual Studio 中建立一個新的專案 UI

接下來,輸入項目名稱和項目地點。

如何在 C# 中將資料表中的大量資料匯出到 Excel,圖 2:建立新專案的設定步驟 建立新專案的設定步驟

接下來,請選擇以下框架。 在這個專案中,我們將使用.NET Core 6。

如何使用 C# 將資料表中大量的資料匯出到 Excel,圖 3:.Net Framework 選擇介面 .NET Framework 選擇介面

應用程式建立解決方案後,將開啟 program.cs 文件,您可以在其中輸入程式碼並建置/執行應用程式。

如何在 C# 中將資料表中的大量資料匯出到 Excel,圖 4:新專案中的空 program.cs 文件 新項目中的 program.cs 檔案為空

接下來,我們可以加入測試程式碼的函式庫。

2. 安裝 IronXL 庫

IronXL 庫可以透過四種方式下載和安裝。

這些工具包括

  • 使用 Visual Studio
  • 使用 Visual Studio 命令列。
  • 直接從 NuGet 網站下載。
  • 直接從 IronXL 網站下載。

2.1 使用 Visual Studio

我們可以使用 NuGet 套件管理器安裝 IronXL 庫。 您必須先開啟 NuGet 套件管理器,然後在瀏覽標籤中搜尋 IronXL。 從搜尋結果中選擇 IronXL 並安裝。 之後,我們的專案就可以在 IronXL 庫中使用了。

下面的螢幕截圖顯示如何在 Visual Studio 中開啟 NuGet 套件管理器。

如何在 C# 中將資料表中的大量資料匯出到 Excel?圖 5:在 Visual Studio 中導覽至 NuGet 套件管理器 在 Visual Studio 中導覽至 NuGet 套件管理器

搜尋結果中的 IronXL:

如何使用 C# 將資料表中的大量資料匯出到 Excel,圖 6:尋找 IronXL 庫 搜尋 IronXL 庫

2.2 使用 Visual Studio 命令列

很多人喜歡使用控制台來執行操作。 所以,我們也可以透過控制台安裝它。 請依照以下步驟透過命令列安裝 IronXL。

  • 在 Visual Studio 中,前往"工具" -> "NuGet 套件管理器" -> "套件管理器控制台"
  • 在程式包管理器控制台標籤中輸入以下代碼:
Install-Package IronXL.Excel

現在,套件將下載/安裝至目前的專案,並可立即使用。

如何在 C# 中將資料表中的大量資料匯出到 Excel,圖 7:透過控制台安裝 IronXL 套件 透過控制台安裝 IronXL 軟體包

2.3 直接從 NuGet 網站下載

第三種方式是直接從網站上下載 NuGet 套件。

  • 導覽至NuGet 官方 IronXL 套件頁面
  • 請從右側功能表中選擇下載套件選項。
  • 雙擊下載的套件。 它會自動安裝。
  • 接下來,重新載入解決方案並開始在專案中使用。

2.4 直接從 IronXL 網站下載

點擊連結即可直接從網站下載最新軟體包。下載完成後,請按照以下步驟將軟體包新增至專案。

  • 在解決方案視窗中右擊專案。 然後,選擇參考選項並瀏覽下載的參考檔案的位置。 接下來,點選確定新增參考文獻。

3. 使用 IronXL 將資料表匯出到 Excel 文件

IronXL 讓我們透過有限的步驟輕鬆地將資料表匯出到 Excel 檔案。

首先,我們需要像下面的程式碼截圖中一樣,包含 IronXL 的命名空間。 新增完成後,我們就可以在程式碼中使用 IronXL 類別和方法了。

如何在 C# 中將資料表中的大量資料匯出到 Excel,圖 8:在使用 IronXL 庫之前,請包含 IronXL 命名空間 使用 IronXL 庫之前,請包含其namespace

IronXL 允許我們建立 Excel 檔案並將其轉換為工作簿物件。 將它們轉換為物件後,我們可以執行各種類型的操作。 在下面的範例程式碼中,我們將把 DataTable 轉換為 Excel 工作表,然後我們可以建立一個 Excel 檔案。

using System;
using System.Data;
using IronXL;

public class ExcelExporter
{
    /// <summary>
    /// Exports a DataTable to an Excel file using IronXL.
    /// </summary>
    /// <param name="filePath">The file path where the Excel file will be saved.</param>
    public static void ExportToExcel(string filePath)
    {
        // Creating a DataTable with a single column
        DataTable table = new DataTable();
        table.Columns.Add("DataSet_Animal", typeof(string));

        // Adding some rows to the DataTable
        table.Rows.Add("Lion");
        table.Rows.Add("Tiger");
        table.Rows.Add("Cat");
        table.Rows.Add("Goat");
        table.Rows.Add("Panther");
        table.Rows.Add("Fox");
        table.Rows.Add("Cheetah");

        // Creating a new Excel Workbook
        WorkBook wb = WorkBook.Create(ExcelFileFormat.XLS);

        // Accessing the default worksheet
        WorkSheet ws = wb.DefaultWorkSheet;

        // Iterating through the DataTable rows
        int rowCount = 1;
        foreach (DataRow row in table.Rows)
        {
            // Adding each DataRow's first column value to the corresponding cell in the worksheet
            ws["A" + rowCount].Value = row[0].ToString();
            rowCount++;
        }

        // Saving the workbook to a CSV file at specified file path with ";" as delimiter
        wb.SaveAsCsv(filePath, ";");
    }
}
using System;
using System.Data;
using IronXL;

public class ExcelExporter
{
    /// <summary>
    /// Exports a DataTable to an Excel file using IronXL.
    /// </summary>
    /// <param name="filePath">The file path where the Excel file will be saved.</param>
    public static void ExportToExcel(string filePath)
    {
        // Creating a DataTable with a single column
        DataTable table = new DataTable();
        table.Columns.Add("DataSet_Animal", typeof(string));

        // Adding some rows to the DataTable
        table.Rows.Add("Lion");
        table.Rows.Add("Tiger");
        table.Rows.Add("Cat");
        table.Rows.Add("Goat");
        table.Rows.Add("Panther");
        table.Rows.Add("Fox");
        table.Rows.Add("Cheetah");

        // Creating a new Excel Workbook
        WorkBook wb = WorkBook.Create(ExcelFileFormat.XLS);

        // Accessing the default worksheet
        WorkSheet ws = wb.DefaultWorkSheet;

        // Iterating through the DataTable rows
        int rowCount = 1;
        foreach (DataRow row in table.Rows)
        {
            // Adding each DataRow's first column value to the corresponding cell in the worksheet
            ws["A" + rowCount].Value = row[0].ToString();
            rowCount++;
        }

        // Saving the workbook to a CSV file at specified file path with ";" as delimiter
        wb.SaveAsCsv(filePath, ";");
    }
}
Imports System
Imports System.Data
Imports IronXL

Public Class ExcelExporter
	''' <summary>
	''' Exports a DataTable to an Excel file using IronXL.
	''' </summary>
	''' <param name="filePath">The file path where the Excel file will be saved.</param>
	Public Shared Sub ExportToExcel(ByVal filePath As String)
		' Creating a DataTable with a single column
		Dim table As New DataTable()
		table.Columns.Add("DataSet_Animal", GetType(String))

		' Adding some rows to the DataTable
		table.Rows.Add("Lion")
		table.Rows.Add("Tiger")
		table.Rows.Add("Cat")
		table.Rows.Add("Goat")
		table.Rows.Add("Panther")
		table.Rows.Add("Fox")
		table.Rows.Add("Cheetah")

		' Creating a new Excel Workbook
		Dim wb As WorkBook = WorkBook.Create(ExcelFileFormat.XLS)

		' Accessing the default worksheet
		Dim ws As WorkSheet = wb.DefaultWorkSheet

		' Iterating through the DataTable rows
		Dim rowCount As Integer = 1
		For Each row As DataRow In table.Rows
			' Adding each DataRow's first column value to the corresponding cell in the worksheet
			ws("A" & rowCount).Value = row(0).ToString()
			rowCount += 1
		Next row

		' Saving the workbook to a CSV file at specified file path with ";" as delimiter
		wb.SaveAsCsv(filePath, ";")
	End Sub
End Class
$vbLabelText   $csharpLabel

上面的程式碼是將資料表匯出到 Excel 檔案。首先,我們建立一個DataTable ,然後建立列標題。 建立好列之後,我們再逐行加入。 新增完行之後,我們就建立WorkBook物件。 透過使用該對象,我們可以將資料新增至 Excel 表格中,然後將資料儲存到指定位置。 我們正在建立WorkSheet對象,該物件允許建立工作表,然後我們可以將其新增至WorkBook物件中。

我們使用foreach循環逐一讀取 DataTable 中的值,然後將這些值加入工作表中。 將所有值新增至工作表後,我們使用名為SaveAsCsv的方法將它們儲存到 CSV 檔案中——我們需要將分隔符號和檔案名稱以及位置作為參數傳遞。 分隔符號是一個可選參數,如果不需要,我們可以忽略它。

如何使用 C# 將資料表中的大量資料匯出到 Excel,圖 9:Visual Studio 中的完整程式碼 Visual Studio 中的完整程式碼

以上是我們在 .NET Core 6 上使用的程式碼的完整螢幕截圖。

Result:

如何使用 C# 將資料表中的大量資料匯出到 Excel,圖 10:在 Microsoft Excel 中開啟檔案後的結果 在 Microsoft Excel 中開啟檔案後的結果

以上是執行程式碼範例的結果。 在截圖中,資料表中的所有資料都已逐一新增至新建立的 Excel 表格中。

4 結論

IronXL 是最常使用的 Excel 庫之一。 它不依賴任何其他第三方程式庫。 它是獨立的,無需安裝微軟Excel。 它可在多個平台上運作。 IronXL 的入門價格為$799起。 此外,還提供一年的產品支援和更新服務選項。 IronXL 提供免版稅再分送保障,但需額外付費。如需了解更多價格詳情,請造訪我們的授權頁面

常見問題解答

如何在 C# 中將 DataTable 匯出至 Excel 檔案?

您可以使用 IronXL.Excel 的 WorkBook 和 WorkSheet 類別,將 DataTable 匯出至 Excel 檔案。建立 DataTable,遍歷其行,並使用 IronXL.Excel 的 API 將資料填入 Excel 檔案。

與 Interop 相比,使用 IronXL 進行 Excel 作業有哪些優點?

IronXL.Excel 比 Microsoft Interop 更快、更有效率,不需要安裝 Microsoft Excel,並支援多種平台和檔案格式。

IronXL 支援 Excel 檔案的哪些檔案格式?

IronXL.Excel 支援多種 Excel 檔案格式,包括 XLSX、XLS、CSV、TSV、XLST 和 XLSM,可進行多樣化的檔案操作。

IronXL.Excel 在匯出資料時可以處理 Excel 公式嗎?

是的,IronXL.Excel 可以處理 Excel 公式,確保從 DataTable 匯出資料到 Excel 檔案時,能保留複雜的計算。

哪些作業系統與 IronXL 相容?

IronXL 與多種作業系統相容,包括 Windows、Linux 和 macOS,可進行跨平台開發。

使用 IronXL 是否需要安裝 Microsoft Excel?

不,IronXL.Excel 可獨立於 Microsoft Excel 運作,讓您無需在伺服器上安裝 Excel 即可處理 Excel 檔案。

如何安裝 IronXL 以在 C# 專案中使用?

您可以透過 Visual Studio 中的 NuGet 套件管理員、使用命令列、或直接從 NuGet 或 IronXL 網站下載來安裝 IronXL。

IronXL 支援哪些 .NET Framework?

IronXL 支援多種 .NET Framework,包括 Console、Windows Forms 應用程式和 Web 應用程式,因此適用於不同類型的專案。

IronXL 是否支援 Excel 檔案中儲存格的樣式與格式化?

是的,IronXL.Excel 提供各種儲存格樣式與格式化選項,例如設定字型樣式、顏色和邊框,以提升 Excel 檔案的外觀。

IronXL.Excel 如何簡化以程式化方式建立 Excel 檔案的過程?

IronXL.Excel 透過提供易於使用的 API 來建立、修改和匯出 Excel 檔案,而不需要維護其他方法所需的介面和結構的複雜性,從而簡化了流程。

Jordi Bardia
軟體工程師
Jordi 在 Python、C# 和 C++ 上最得心應手,當他不在 Iron Software 展現技術時,便在做遊戲編程。在分担产品测测试,产品开发和研究的责任时,Jordi 为持续的产品改进增值。他说这种多样化的经验使他受到挑战并保持参与, 而这也是他与 Iron Software 中工作一大乐趣。Jordi 在佛罗里达州迈阿密长大,曾在佛罗里达大学学习计算机科学和统计学。