
如何在 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程式包管理器 > 程式包管理器控制台。
- 在套件管理器控制台選項卡中輸入以下行:
現在,套件將下載/安裝到目前的專案並準備好使用。
如何在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");
}
}Imports IronXL
Imports System.Data
Module Program
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
' Save the workbook as an XLSX file.
wb.SaveAs("datatable.xlsx")
End Sub
End Module輸出
以下是上述源程式碼的輸出,顯示資料在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");
}
}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如何在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等。

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



