跳至頁尾內容
USING IRONXL

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

本文將探討將DataTable導出到Excel文件的不同方式及其好處。

1. IronXL

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

IronXL可以處理XLS和XLSX文件格式,使其成為處理Excel文件的多功能工具。 它還支援多種其他文件格式,如CSV和TSV,允許使用者處理不同的資料來源。 本文將探討IronXL的不同功能以及它如何幫助開發者簡化處理Excel文件的過程。

2. 先決條件

使用IronXL程式庫從DataTable導出資料到Excel的必要條件:

  • 要建立ASP.NET專案,您的系統需要安裝Visual Studio。 如果您尚未安裝Visual Studio,可以從Microsoft網站下載。
  • 在建立ASP.NET專案之前,您需要確保您的系統已經安裝ASP.NET。 您可以通過進入控制面板並檢查"開啟或關閉Windows功能"選項來驗證。 確保啟用"ASP.NET"選項。
  • 要能夠使用IronXL程式庫將DataTable導出到Excel文件,您必須安裝它。 您可以透過從Visual Studio中的NuGet套件管理器下載IronXL NuGet套件來安裝它。

3. 建立新的ASP.NET Core專案

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

如何在ASP.NET中將Datatable導出到Excel,圖1:在Visual Studio中建立新專案。 在Visual Studio中建立新專案

選擇專案型別後,為專案提供名稱並指定其位置。 為專案選擇所需的Framework,如.NET Core 6。

如何在ASP.NET中將Datatable導出到Excel,圖2:配置新專案。 配置新專案

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

如何在ASP.NET中將Datatable導出到Excel,圖3:.NET Framework選擇。 .NET Framework選擇

最後,您可以加入程式庫來測試程式碼。

4. 安裝IronXL

IronXL程式庫可以透過不同的方式下載和安裝。

這些方法是:

  • 使用Visual Studio NuGet程式包
  • 使用Visual Studio命令行。

4.1 使用Visual Studio

安裝IronXL程式庫的最簡單方法是使用Visual Studio中的NuGet套件管理器。 只需打開NuGet套件管理器,然後在"瀏覽"選項卡中搜尋IronXL。 找到IronXL後,選擇並繼續安裝。 安裝完成後,您可以開始在專案中使用IronXL程式庫。

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

如何在ASP.NET中將Datatable導出到Excel,圖4:導航到NuGet套件管理器。 導航到NuGet套件管理器

IronXL在搜尋結果中:

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

4.2 使用Visual Studio命令行

許多人更喜歡使用命令行介面安裝套件。 要使用命令行安裝IronXL,請按照以下步驟:

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

現在,套件將下載/安裝到目前的專案並準備好使用。

如何在ASP.NET中將Datatable導出到Excel,圖6:套件管理器控制台中的安裝進度。 套件管理器控制台中的安裝進度

5. 使用DataTable DT建立IronXL的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中將Datatable導出到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中將Datatable導出到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中受益,這是一個包含五個專業程式庫的合集,包括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 套件管理器安裝 IronXL 程式庫。ASP.NET 也應在您的開發環境中正確設置。

如何使用 Visual Studio 安裝 IronXL 到我的專案?

您可以使用 Visual Studio 中的 NuGet 套件管理器,搜尋 IronXL 並點擊「安裝」來安裝 IronXL 到您的專案。或者,在包管理器控制台中使用命令:Install-Package IronXL.Excel

我可以使用 IronXL 以不同的文件格式儲存 DataTable 資料嗎?

可以,IronXL 支持將 DataTable 資料儲存為多種文件格式,包括 XLSX 和 CSV。使用方法如 SaveAsSaveAsCsv 指定所需的文件格式。

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

IronXL 可免費安裝和使用於非商業開發。還有免費試用版可供生產測試。商業用途的授權細節可在 Iron Software 網站上查看。

using IronXL 將 DataTable 匯出成 Excel 的好處是什麼?

IronXL 通過提供易於使用的資料操作和匯出方法,簡化了將 DataTable 匯出成 Excel 的過程。它支持多種文件格式,有助於精簡 Excel 中的資料可視化和展示過程。

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

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

Curtis Chau
技術作家

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

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

Iron 支援團隊

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