在 C# 中將 DataTable 導出到 Excel(代碼範例教程)
以程式方式修改 Excel 電子表格可能比較困難,主要有兩個原因。 首先,在使用電子表格時,使用者必須保持一致的介面和文件結構,但這並不總是那麼容易。 其次,在特定情況下,尤其是涉及複雜計算時,並不總是清楚哪些程式碼能夠正常運作。 以程式設計方式建立 Excel 檔案之所以困難,原因有很多。 程式設計師必須先將 Excel 文件中的資料轉換為可讀格式,然後再解析資料,最後再將其解析回來,這更加困難。 我已經找到了解決這個問題的方法。 我將教你如何使用 IronXL .NET Excel 庫輕鬆建立 Excel 文件,並透過程式設計將 DataTable 匯出到 Excel 工作表中。 讓我們開始吧:
如何在 C# 中將資料表匯出到 Excel
- 安裝 C# 庫以將 DataTable 匯出到 Excel
- 創建新的 Excel 工作簿並訪問工作表
- 在 C# 中遍歷
DataTable的DataRow - 存取
Cell中的Value屬性,並將DataRow中的資料填入工作表中 - 將 Excel 工作表匯出到所需位置
IronXL 功能
- IronXL 可在多種作業系統上運行,包括 Windows、 Linux和macOS 。
- 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
上面的程式碼將資料表匯出到 Excel 檔案。首先,我們建立一個 DataTable,然後建立列標題。 建立好列之後,我們再逐行加入。 新增行之後,我們建立WorkBook物件。 透過使用該對象,我們可以將資料新增至 Excel 表格中,然後將資料儲存到指定位置。 我們正在建立WorkSheet對象,該物件允許建立工作表,然後我們可以將其新增至 WorkBook 物件中。
我們使用循環逐一讀取資料表中的值,然後將該值加入工作表中。 將所有值新增至工作表後,我們使用名為 SaveAsCsv 的方法將它們儲存到 CSV 檔案中——我們需要將分隔符號和檔案名稱以及位置作為參數傳遞。 分隔符號是一個可選參數,如果不需要,我們可以忽略它。
如何使用 C# 將資料表中的大量資料匯出到 Excel,圖 9:Visual Studio 中的完整程式碼 Visual Studio 中的完整程式碼
以上是我們在 .NET Core 6 上使用的程式碼的完整螢幕截圖。
結果:
如何使用 C# 將資料表中的大量資料匯出到 Excel,圖 10:在 Microsoft Excel 中開啟檔案後的結果 在 Microsoft Excel 中開啟檔案後的結果
以上是執行程式碼範例的結果。 在截圖中,資料表中的所有資料都已逐一新增至新建立的 Excel 表格中。
4 結論
IronXL 是最常使用的 Excel 庫之一。 它不依賴任何其他第三方程式庫。 它是獨立的,無需安裝微軟Excel。 它可在多個平台上運作。 IronXL 的入門價格從 $999 起。 此外,還提供一年的產品支援和更新服務選項。 IronXL 提供免版稅再分送保障,但需額外付費。如需了解更多價格詳情,請造訪我們的授權頁面。
常見問題解答
如何在 C# 中將 DataTable 匯出到 Excel 文件?
您可以使用 IronXL 的 WorkBook 和 WorkSheet 類將 DataTable 匯出到 Excel 文件中。創建一個 DataTable,遍歷其行,並通過 IronXL 的 API 來使用資料填充 Excel 文件。
使用 IronXL 進行 Excel 操作相較於 Interop 有什麼好處?
IronXL 比 Microsoft Interop 更快、更高效,不需要安裝 Microsoft Excel,並支援多個平台和文件格式。
IronXL 支援哪些 Excel 檔案格式?
IronXL 支援包括 XLSX、XLS、CSV、TSV、XLST 和 XLSM 在內的各種 Excel 文件格式,允許靈活的文件操作。
IronXL 可以在匯出資料時處理 Excel 公式嗎?
是的,IronXL 能夠處理 Excel 公式,確保在從 DataTable 匯出資料到 Excel 文件時保留複雜計算。
IronXL 兼容哪些操作系統?
IronXL 兼容多個操作系統,包括 Windows、Linux 和 macOS,允許跨平台開發。
使用 IronXL 是否需要安裝 Microsoft Excel?
不,IronXL 獨立於 Microsoft Excel 運行,允許您在服務器上不安裝 Excel 進行 Excel 文件操作。
如何在 C# 項目中安裝 IronXL?
您可以通過 Visual Studio 中的 NuGet 包管理器安裝 IronXL,使用命令行,或者直接從 NuGet 或 IronXL 網站下載。
IronXL 支援哪些 .NET 框架?
IronXL 支援多種 .NET 框架,包括控制台應用程式、Windows Forms 應用程式和 Web 應用程式,使其適用於各類項目。
IronXL 是否支援 Excel 文件中單元格的樣式和格式?
是的,IronXL 提供各種單元格樣式和格式選擇,例如設置字體樣式、顏色和邊框,增強 Excel 文件的外觀。
IronXL 如何簡化編程創建 Excel 文件的過程?
IronXL 通過提供易於使用的 API 來簡化過程,創建、修改和匯出 Excel 文件,免去其他方法所需的界面和結構維護的複雜性。


