跳至頁尾內容
USING IRONXL
如何將資料表轉換成Excel文件

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

程式化修改Excel試算表可能很困難,主要有兩個原因。 首先,處理試算表時,使用者必須保持一致的介面和文件結構,這並不總是那麼簡單。 其次,在特定情況下尤其涉及複雜計算時,並不總能清楚哪段程式碼能運行。 有很多理由解釋為何程式化生成Excel文件如此困難。 程式設計師必須先將Excel文件中的資料轉換成可讀格式,然後解析資料並解析回去,這更為困難。 我已經想出了解決這個問題的方法。 我將教您如何使用IronXL .NET Excel 程式庫製作Excel文件,並程式化將DataTable匯出到Excel工作表,而不會遇到任何問題。 讓我們開始吧:

IronXL功能

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

1 在Visual Studio中建立新專案

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

如何在C#中將大量資料從DataTable匯出到Excel,圖1: 在Visual Studio中建立新的專案UI 在Visual Studio中建立新的專案UI

接下來,輸入專案名稱和專案位置。

如何在C#中將大量資料從DataTable匯出到Excel,圖2:建立新專案的配置步驟 建立新專案的配置步驟

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

如何在C#中將大量資料從DataTable匯出到Excel,圖3:.NET Framework 選擇 UI .NET Framework 選擇 UI

一旦應用程式建立了解決方案,它將打開program.cs文件,您可以在其中輸入程式碼並構建/運行應用程式。

如何在C#中將大量資料從DataTable匯出到Excel,圖4:新專案中的空白program.cs文件 新專案中的空白program.cs文件

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

2 安裝 IronXL Library

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

這些是:

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

2.1 使用 Visual Studio

我們可以使用NuGet 包管理器安裝 IronXL 程式庫。 您必須首先打開NuGet 包管理器,然後在瀏覽選項卡中搜尋IronXL。 在搜尋結果中選擇IronXL並安裝它。 之後,我們的專案將可以在IronXL 程式庫中使用。

以下截圖顯示如何在Visual Studio中打開NuGet 包管理器。

如何在C#中將大量資料從DataTable匯出到Excel,圖5:在Visual Studio中導航到NuGet 包管理器 在Visual Studio中導航到NuGet 包管理器

在搜尋結果中IronXL:

如何在C#中將大量資料從DataTable匯出到Excel,圖6:搜尋 IronXL 程式庫 搜尋 IronXL 程式庫

2.2 使用 Visual Studio 指令行

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

  • 在 Visual Studio 中,轉到工具-> NuGet 包管理器 -> 套件管理器控制台
  • 在套件管理器控制台的選項卡中輸入以下行:
Install-Package IronXL.Excel

現在包將會下載/安裝到當前項目,並準備好使用。

如何在C#中將大量資料從DataTable匯出到Excel,圖7:透過控制台安裝IronXL程式包 透過控制台安裝IronXL程式包

2.3 從 NuGet 網站直接下載

第三種方式是從網站直接下載 NuGet 包。

  • 轉至NuGet 官方 IronXL 包網頁
  • 從右側選單中選擇下載包選項。
  • 雙擊已下載包。 它將自動安裝。
  • 然後,重新載入解決方案並開始在專案中使用它。

2.4 從 IronXL 網站直接下載

點擊連結來從網站直接下載最新程式包。下載後,按照以下步驟將程式包新增到專案中。

  • 從解決方案視窗中右鍵單擊項目。
  • 然後,選擇選項參考並瀏覽已下載參考的位置。
  • 接下來,單擊確定以新增參考。

3 使用 IronXL 將 Datatable 匯出到 Excel 文件中

IronXL 允許我們以有限的步驟輕鬆將 DataTables 匯出到 Excel 文件中。

首先,我們需要包括 IronXL 的命名空間,如下圖程式碼所示。 一旦新增後,我們就可以在程式碼中使用 IronXL 的類別和方法。

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

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

在上述程式碼中,我們將 DataTable 匯出到 Excel 文件中。首先,我們建立一個 DataTable ,然後建立列標題。 建立列後,我們逐一新增行。 一旦新增了行,我們就建立 WorkBook 物件。 通過使用物件,我們可以將資料新增到Excel工作表中,然後將資料保存到位置。 我們正在建立 WorkSheet 物件,這允許建立工作表,然後我們可以將其新增到 WorkBook 物件中。

我們使用 foreach 迴圈逐一讀取DataTable值,然後我們將值新增到工作表中。 一旦所有值都新增到工作表中,我們會使用一個稱為 SaveAsCsv 的方法將其保存為CSV文件——某需要傳遞分隔符和檔案名稱以及位置作為參數。 分隔符是可選參數,如果不需要,可以忽略。

如何在C#中將大量資料從DataTable匯出到Excel,圖9:在Visual Studio中完成的程式碼 在Visual Studio中完成的程式碼

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

結果:

如何在C#中將大量資料從DataTable匯出到Excel,圖10:在Microsoft Excel中開啟該檔案時的結果 在Microsoft Excel中開啟該檔案時的結果

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

4 結論

IronXL 是最常用的 Excel 程式庫之一。 它不依賴任何其他第三方程式庫。 它是獨立的,不需要安裝 MS Excel。 它可以在多個平台上使用。 IronXL 的入門價格從 $999 開始。 此外,它還提供一年的產品支持和更新選擇。 IronXL 提供額外成本的免版稅再分發範圍。如需了解更多價格細節,請存取我們的授權頁面

常見問題

如何在C#中將DataTable匯出到Excel文件?

您可以利用IronXL的WorkBook和WorkSheet類將DataTable匯出到Excel文件。建立DataTable,遍歷其行,然後利用IronXL的API用資料填充Excel文件。

在Excel操作中使用IronXL相較於Interop有什麼優勢?

IronXL比Microsoft Interop更快速高效,不需要安裝Microsoft Excel,並且支持多平台和多種檔案格式。

IronXL支援哪種Excel檔案格式?

IronXL支持多種Excel文件格式,包括XLSX, XLS, CSV, TSV, XLST, 和XLSM,允許靈活的文件操作。

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

是的,IronXL可以處理Excel公式,確保在從DataTable匯出資料到Excel文件時複雜的計算能夠被保存。

哪些操作系統與IronXL相容?

IronXL與多個操作系統相容,包括Windows, Linux, 和macOS,允許跨平台開發。

using IronXL 是否需要安裝 Microsoft Excel?

不,IronXL獨立於Microsoft Excel運行,允許您在伺服器上不需安裝Excel即可處理Excel文件。

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

您可以通過Visual Studio中的NuGet包管理器安裝IronXL,使用命令行工具,或直接從NuGet或IronXL網站下載。

IronXL支持哪些.NET框架?

IronXL支持多種.NET框架,包括控制台應用程式、Windows窗體應用程式和Web應用程式,使其對不同型別的專案都有較大的適應性。

IronXL是否支持Excel文件中單元格的樣式設置和格式設置?

是的,IronXL提供了多樣的單元格樣式設置和格式選項,如設置字體樣式、顏色和邊框,以增強Excel文件的外觀。

IronXL如何簡化以編程方式建立Excel文件的過程?

IronXL透過提供一個易於使用的API來簡化建立、修改和匯出Excel文件的過程,無需維護其他方法所需的接口和結構複雜性。

Curtis Chau
技術作家

Curtis Chau擁有Carleton大學的電腦科學學士學位,專精於前端開發,擁有Node.js、TypeScript、JavaScript和React的專業知識。Curtis熱衷於建立直觀且美觀的使用者介面,喜愛使用現代框架並建立結構良好、視覺吸引力的手冊。

除了開發,Curtis對物聯網(IoT)有濃厚的興趣,探索創新的方法來整合硬體和軟體。在空閒時間,他喜歡玩遊戲和建立Discord機器人,結合他對技術的熱愛與創造力。

Iron 支援團隊

我們線上24小時,每週5天。
聊天
電子郵件
給我打電話