跳過到頁腳內容
使用 IRONXL

如何在 ASP.NET Core 中將 DataTable 導出到 Excel

本文將探討將DataTable匯出到 Excel 檔案的不同方法以及這樣做的好處。

1. IronXL

IronXL是一個功能強大的 .NET 程式庫,它使開發人員能夠使用 ASP.NET 讀取、寫入和操作 Excel 檔案。 它提供了一系列簡化處理 Excel 文件過程的功能,例如資料提取、格式化和驗證。

IronXL.Excel 可處理 XLS 和 XLSX 檔案格式,是處理 Excel 檔案的多用途工具。 它還支援多種其他文件格式,例如 CSV 和 TSV,使用戶能夠處理不同的資料來源。 本文將探討 IronXL 的不同功能,以及它如何幫助開發人員簡化處理 Excel 檔案的流程。

2. 先決條件

使用 IronXL 庫將資料從DataTable匯出到 Excel 的前提條件:

  • 若要建立 ASP.NET 項目,您的系統需要安裝 Visual Studio。 如果您還沒有 Visual Studio,可以從微軟網站下載。
  • 在建立 ASP.NET 專案之前,您需要確保 ASP.NET 已安裝在您的系統上。 您可以透過開啟控制台並檢查"啟用或關閉 Windows 功能"選項來驗證這一點。 請確保已啟用"ASP.NET"選項。
  • 若要使用 IronXL 庫將資料從DataTable匯出到 Excel 文件,您必須安裝該庫。 您可以透過從 Visual Studio 中的 NuGet 套件管理器下載 IronXL NuGet 套件來安裝它。

3. 建立新的 ASP.NET Core 項目

若要在 Excel 中使用 IronXL 程式庫,您需要在 Visual Studio 中建立一個 .NET 專案。 您可以使用任何版本的 Visual Studio,但建議使用最新版本。 根據您的需求,您可以從不同的專案範本中進行選擇,例如 Windows Forms。 為了方便起見,本教學將使用控制台應用程式。

如何在 ASP.NET 中將資料表匯出到 Excel,圖 1:在 Visual Studio 中建立一個新項目 在 Visual Studio 中建立一個新項目

選擇項目類型後,為項目命名並指定其位置。 為專案選擇所需的框架,例如 .NET Core 6。

如何在 ASP.NET 中將資料表匯出到 Excel,圖 2:配置新項目 配置新項目

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

如何在 ASP.NET 中將資料表匯出到 Excel,圖 3:.NET Framework 選擇 .NET Framework 選擇

最後,您可以整合該庫來測試程式碼。

4. 安裝 IronXL

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

這些工具包括

  • 使用 Visual Studio NuGet 套件
  • 使用 Visual Studio Command-Line。

4.1 使用 Visual Studio

安裝 IronXL 庫最簡單的方法是在 Visual Studio 中使用 NuGet 套件管理器。 只需開啟 NuGet 套件管理器,然後在"瀏覽"標籤中搜尋 IronXL 即可。 在搜尋結果中找到 IronXL 後,選擇它並繼續進行安裝。 安裝完成後,您就可以在專案中使用 IronXL 庫了。

下面這張截圖展示如何在 Visual Studio 中開啟 NuGet 套件管理器。

如何在 ASP.NET 中將資料表匯出到 Excel,圖 4:導覽至 NuGet 套件管理器 導覽至 NuGet 套件管理器

搜尋結果中的 IronXL:

如何在 ASP.NET 中將資料表匯出到 Excel,圖 5:在 NuGet 套件管理器 UI 中搜尋並安裝 IronXL 套件 在 NuGet 套件管理器 UI 中搜尋並安裝 IronXL 套件。

4.2 使用 Visual Studio 命令列。

許多人喜歡使用命令列介面安裝軟體包。 若要使用命令列安裝 IronXL,請依照下列步驟操作:

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

現在該軟體包將下載/安裝到當前專案中,並準備就緒。

如何在 ASP.NET 中將資料表匯出到 Excel,圖 6:套件管理器控制台中的安裝進度 軟體套件管理器控制台中的安裝進度

5. 使用 IronXL 透過 DataTable DT 建立 Excel 文件

將資料表中的資料匯出為 Excel 檔案格式是一種非常流行的做法。 使用 IronXL,您可以輕鬆地將DataTable資料匯出到 Excel 文件。 下面隨附的範例程式碼會將DataTable轉換為以 XLSX 檔案格式儲存的 Excel 工作表。

5.1. 將資料表轉換為 Excel 文件

首先,您需要包含 IronXL 的命名空間和其他依賴項。 然後,您可以開始編寫如下所示的程式碼。

using IronXL;
using System.Data;

class Program
{
    static void Main()
    {
        // Create a new DataTable.
        DataTable dt = new DataTable();
        dt.Columns.Add("DataSet", typeof(string)); // Add a column to the DataTable.

        // Add rows to the DataTable.
        dt.Rows.Add("Pen");
        dt.Rows.Add("Paper");
        dt.Rows.Add("Book");
        dt.Rows.Add("Cat");
        dt.Rows.Add("Panther");
        dt.Rows.Add("Cell");
        dt.Rows.Add("Bag");
        dt.Rows.Add("Bed");
        dt.Rows.Add("Fan");
        dt.Rows.Add("Smoke");

        // Create a new workbook.
        WorkBook wb = WorkBook.Create(ExcelFileFormat.XLS);
        // Get the default worksheet.
        WorkSheet ws = wb.DefaultWorkSheet;
        // Start adding data from row 1.
        int rowCount = 1;

        // Populate the worksheet with data from the DataTable.
        foreach (DataRow row in dt.Rows)
        {
            ws["A" + (rowCount)].Value = row[0].ToString();
            rowCount++;
        }

        // Save the workbook as an XLSX file.
        wb.SaveAs("datatable.xlsx");
    }
}
using IronXL;
using System.Data;

class Program
{
    static void Main()
    {
        // Create a new DataTable.
        DataTable dt = new DataTable();
        dt.Columns.Add("DataSet", typeof(string)); // Add a column to the DataTable.

        // Add rows to the DataTable.
        dt.Rows.Add("Pen");
        dt.Rows.Add("Paper");
        dt.Rows.Add("Book");
        dt.Rows.Add("Cat");
        dt.Rows.Add("Panther");
        dt.Rows.Add("Cell");
        dt.Rows.Add("Bag");
        dt.Rows.Add("Bed");
        dt.Rows.Add("Fan");
        dt.Rows.Add("Smoke");

        // Create a new workbook.
        WorkBook wb = WorkBook.Create(ExcelFileFormat.XLS);
        // Get the default worksheet.
        WorkSheet ws = wb.DefaultWorkSheet;
        // Start adding data from row 1.
        int rowCount = 1;

        // Populate the worksheet with data from the DataTable.
        foreach (DataRow row in dt.Rows)
        {
            ws["A" + (rowCount)].Value = row[0].ToString();
            rowCount++;
        }

        // Save the workbook as an XLSX file.
        wb.SaveAs("datatable.xlsx");
    }
}
Imports IronXL
Imports System.Data

Friend Class Program
	Shared Sub Main()
		' Create a new DataTable.
		Dim dt As New DataTable()
		dt.Columns.Add("DataSet", GetType(String)) ' Add a column to the DataTable.

		' Add rows to the DataTable.
		dt.Rows.Add("Pen")
		dt.Rows.Add("Paper")
		dt.Rows.Add("Book")
		dt.Rows.Add("Cat")
		dt.Rows.Add("Panther")
		dt.Rows.Add("Cell")
		dt.Rows.Add("Bag")
		dt.Rows.Add("Bed")
		dt.Rows.Add("Fan")
		dt.Rows.Add("Smoke")

		' Create a new workbook.
		Dim wb As WorkBook = WorkBook.Create(ExcelFileFormat.XLS)
		' Get the default worksheet.
		Dim ws As WorkSheet = wb.DefaultWorkSheet
		' Start adding data from row 1.
		Dim rowCount As Integer = 1

		' Populate the worksheet with data from the DataTable.
		For Each row As DataRow In dt.Rows
			ws("A" & (rowCount)).Value = row(0).ToString()
			rowCount += 1
		Next row

		' Save the workbook as an XLSX file.
		wb.SaveAs("datatable.xlsx")
	End Sub
End Class
$vbLabelText   $csharpLabel

輸出

以下顯示的是上述原始程式碼的輸出結果,展示了資料在 Excel 檔案中的顯示方式。

如何在 ASP.NET 中將資料表匯出到 Excel,圖 7:輸出的 Excel 文件 輸出的 Excel 文件

5.2. 資料表支援的 Excel 檔案格式

使用 IronXL,您也可以將DataTable轉換為 Excel 支援的不同檔案格式,例如 CSV 檔案。 我們將使用下面的範例,但這次將其儲存為 CSV 檔案。只需這樣做,即可將工作簿儲存為其他文件格式。

using IronXL;
using System.Data;

class Program
{
    static void Main()
    {
        // Create a new DataTable.
        DataTable dt = new DataTable();
        dt.Columns.Add("DataSet", typeof(string)); // Add a column to the DataTable.

        // Add rows to the DataTable.
        dt.Rows.Add("Pen");
        dt.Rows.Add("Paper");
        dt.Rows.Add("Book");
        dt.Rows.Add("Cat");
        dt.Rows.Add("Panther");
        dt.Rows.Add("Cell");
        dt.Rows.Add("Bag");
        dt.Rows.Add("Bed");
        dt.Rows.Add("Fan");
        dt.Rows.Add("Smoke");

        // Create a new workbook.
        WorkBook wb = WorkBook.Create(ExcelFileFormat.XLS);
        // Get the default worksheet.
        WorkSheet ws = wb.DefaultWorkSheet;
        // Start adding data from row 1.
        int rowCount = 1;

        // Populate the worksheet with data from the DataTable.
        foreach (DataRow row in dt.Rows)
        {
            ws["A" + (rowCount)].Value = row[0].ToString();
            rowCount++;
        }

        // Save the workbook as a CSV file.
        wb.SaveAsCsv("datatable.csv");
    }
}
using IronXL;
using System.Data;

class Program
{
    static void Main()
    {
        // Create a new DataTable.
        DataTable dt = new DataTable();
        dt.Columns.Add("DataSet", typeof(string)); // Add a column to the DataTable.

        // Add rows to the DataTable.
        dt.Rows.Add("Pen");
        dt.Rows.Add("Paper");
        dt.Rows.Add("Book");
        dt.Rows.Add("Cat");
        dt.Rows.Add("Panther");
        dt.Rows.Add("Cell");
        dt.Rows.Add("Bag");
        dt.Rows.Add("Bed");
        dt.Rows.Add("Fan");
        dt.Rows.Add("Smoke");

        // Create a new workbook.
        WorkBook wb = WorkBook.Create(ExcelFileFormat.XLS);
        // Get the default worksheet.
        WorkSheet ws = wb.DefaultWorkSheet;
        // Start adding data from row 1.
        int rowCount = 1;

        // Populate the worksheet with data from the DataTable.
        foreach (DataRow row in dt.Rows)
        {
            ws["A" + (rowCount)].Value = row[0].ToString();
            rowCount++;
        }

        // Save the workbook as a CSV file.
        wb.SaveAsCsv("datatable.csv");
    }
}
Imports IronXL
Imports System.Data

Friend Class Program
	Shared Sub Main()
		' Create a new DataTable.
		Dim dt As New DataTable()
		dt.Columns.Add("DataSet", GetType(String)) ' Add a column to the DataTable.

		' Add rows to the DataTable.
		dt.Rows.Add("Pen")
		dt.Rows.Add("Paper")
		dt.Rows.Add("Book")
		dt.Rows.Add("Cat")
		dt.Rows.Add("Panther")
		dt.Rows.Add("Cell")
		dt.Rows.Add("Bag")
		dt.Rows.Add("Bed")
		dt.Rows.Add("Fan")
		dt.Rows.Add("Smoke")

		' Create a new workbook.
		Dim wb As WorkBook = WorkBook.Create(ExcelFileFormat.XLS)
		' Get the default worksheet.
		Dim ws As WorkSheet = wb.DefaultWorkSheet
		' Start adding data from row 1.
		Dim rowCount As Integer = 1

		' Populate the worksheet with data from the DataTable.
		For Each row As DataRow In dt.Rows
			ws("A" & (rowCount)).Value = row(0).ToString()
			rowCount += 1
		Next row

		' Save the workbook as a CSV file.
		wb.SaveAsCsv("datatable.csv")
	End Sub
End Class
$vbLabelText   $csharpLabel

如何在 ASP.NET 中將資料表匯出到 Excel,圖 8:輸出的 CSV 文件 輸出的 CSV 檔案

6.結論

DataTable匯出到 Excel 是資料分析和管理中的關鍵步驟。 Excel 電子表格被廣泛用於資料視覺化和演示,IronXL 庫提供了一系列功能,以簡化在 ASP.NET 中使用 Excel 檔案的過程。 本文介紹了建立新的 ASP.NET 專案、安裝 IronXL 以及使用它將DataTable中的資料匯出到 Excel 檔案的步驟。此外,本文也示範如何將工作簿儲存為不同的文件格式,例如 CSV。透過使用 IronXL,開發人員可以簡化處理 Excel 檔案的過程,並建立美觀的資料簡報。

要了解有關 IronXL 以及如何將DataTable匯出為不同 Excel 格式的更多信息,請訪問以下教程

IronXL可免費安裝和用於非商業開發用途。 提供免費試用版,可用於生產環境測試。 請查看定價方案,以了解有關價格和許可的更多詳細資訊。

用戶還可以從Iron Suite中受益,Iron Suite 是一套包含五個專業庫的集合,其中包括IronXL 、IronPDF 等。

常見問題解答

如何在 ASP.NET Core 中將 DataTable 匯出至 Excel 檔案?

若要在 ASP.NET Core 中使用 IronXL 將 DataTable 匯出至 Excel,您需要建立 DataTable、將資料填入其中,然後運用 IronXL 來建立新的工作簿。您可以使用 IronXL 的方法將工作簿儲存為 XLSX 或 CSV 等格式。

在 ASP.NET 專案中使用 IronXL 有哪些先決條件?

在 ASP.NET 專案中使用 IronXL 之前,請確認已安裝 Visual Studio 以建立 ASP.NET 專案,並透過 NuGet Package Manager 安裝 IronXL library。ASP.NET 也應該在您的開發環境中正確設定。

如何使用 Visual Studio 在專案中安裝 IronXL?

您可以使用 Visual Studio 中的 NuGet Package Manager 在專案中安裝 IronXL,方法是搜尋 IronXL 並按一下「安裝」。另外,也可以使用套件管理員控制台的指令:Install-Package IronXL.Excel.

我可以使用 IronXL 將 DataTable 資料儲存為不同的檔案格式嗎?

是的,IronXL 支援將 DataTable 資料儲存為各種檔案格式,包括 XLSX 和 CSV。使用 SaveAsSaveAsCsv 等方法指定所需的檔案格式。

IronXL 是否適用於非商業開發?

IronXL 可免費安裝並用於非商業開發。也有免費的試用版供生產測試使用。若要用於商業用途,可在 Iron Software 網站取得授權細節。

使用 IronXL 將 DataTable 匯出至 Excel 有什麼好處?

IronXL.Excel 透過提供易於使用的資料操作和匯出方法,簡化了匯出 DataTable 到 Excel 的過程。它支援多種檔案格式,有助於簡化 Excel 中的資料可視化和呈現流程。

如何建立一個新的 ASP.NET Core 專案,將 DataTable 匯出至 Excel?

若要在 Visual Studio 中建立新的 ASP.NET Core 專案,請選擇專案類型、提供名稱和位置,並選擇適當的 .NET Framework 版本。設定完成後,整合 IronXL 以管理 Excel 檔案匯出。

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