使用IRONXL

在 C# 中將 DataTable 轉換為 Excel (示例代碼教程)

已更新 2024年1月7日
分享:

程式設計上更改 Excel 試算表可能會很困難,主要有兩個原因。首先,在處理試算表時,用戶必須保持一致的界面和文件結構,而這並不總是很簡單。其次,在特定情況下,尤其是涉及複雜計算時,並不總是清楚哪些代碼會起作用。程式設計上創建 Excel 文件有許多困難的原因。程式員必須首先將 Excel 文件中的數據轉換成可讀格式,然後解析數據並再度解析回去,這更加困難。我已經找到了解決這個問題的方法。我將教你如何使用 IronXL .NET Excel 函式庫創建一個 Excel 文件並程式化地將 Datatable 匯出到 Excel 試算表中而不會遇到任何問題。我們開始吧:

IronXL 功能

  • IronXL 可在多種作業系統上運行,包括 Windows, Linux,和 macOS
  • 幾乎所有的 .NET 框架都被 IronXL 支援,包括控制台應用程式、Windows Forms 應用程式,以及 網路應用程式.
  • IronXL 使讀取 Excel 檔案變得簡單而容易。
  • 我們可以載入、編輯、 匯出 Datatables, 匯出數據集,及 讀取 Excel 檔案格式 例如 XLSX 文件、XLS、CSV、TSV、XLST、XLSM 文件等,使用 IronXL。
  • IronXL 允許我們保存和 匯出檔案 使用多種擴展,包括 XLS、CSV、TSV、JSON、XLSX 等。 Excel 公式 可以由IronXL創建。
  • 文本、數字、公式、日期、貨幣、百分比及其他 Excel 单元格数据格式 由 IronXL 支援。
  • 它還提供了許多 排序選項 例如 Range、Columns 和 Rows 等等。
  • 在 IronXL 中有單元格樣式設定 字體, 大小,背景圖案,邊框和對齊方式等。
  • 我們可以使用 IronXL 讀取和匯出 Excel 文件中的數據。
  • IronXL 不需要在您的伺服器上安裝 Excel 或 Interop。IronXL API 比 Microsoft Office、Interop 和 Excel 更快、更容易使用。

1 在 Visual Studio 中建立新專案

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

如何將大量數據從資料表導出到 Excel 在 C# 中,圖 1:在 Visual Studio 中創建一個新的項目 UI

在 Visual Studio 中創建新專案 UI

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

如何將巨大的資料從 Datatable 匯出到 Excel 在 C# 中,圖 2:建立新項目中的配置步驟

建立新專案的配置步驟

接下來,選擇下面的框架。在這個專案中,我們將使用 .NET Core 6。

如何將龐大的數據從DataTable導出到Excel中(以C#為例),圖3:.Net Framework選擇UI

.Net 框架選擇 UI

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

如何將大量數據從Datatable導出到Excel在C#中,圖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 套件管理器。

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

在 Visual Studio 中導航至 NuGet 套件管理員

IronXL 在搜索結果中:

如何將大量數據從 Datatable 匯出至 Excel 中的 C#,圖 6:搜索 IronXL 程式庫

搜尋 IronXL 庫

2.2 使用 Visual Studio 命令列

許多人喜愛使用控制台來執行操作。所以,我們也可以通過控制台安裝它。請按照以下步驟通過命令列安裝 IronXL。

  • 在 Visual Studio 中,依次選擇 工具 -> NuGet 套件管理員 -> 套件管理員控制台
  • 在套件管理員控制台標籤中輸入以下行:
Install-Package IronXL.Excel

現在該軟件包將下載/安裝到當前項目並準備使用。

如何從資料表中將大量數據導出到 Excel 文件(C#),圖7:通過控制台安裝 IronXL 套件

透過控制台安裝 IronXL 套件

2.3 從 NuGet 網站直接下載

第三種方法是從網站直接下載 NuGet 套件。

  • 導航到 Nuget 官方 IronXL 套件頁面.
  • 從右側選單中選擇下載選項。
  • 雙擊下載的套件,會自動安裝。
  • 接下來,重新載入解決方案並開始在專案中使用它。

2.4 從 IronXL 網站直接下載

點擊鏈接以 下載最新套件 直接從網站下載。下載後,請按照以下步驟將套件添加到專案中。

  • 在解決方案視窗中右鍵點選專案。
  • 然後,選擇參考選項並瀏覽下載的參考位置。
  • 接著,點擊確定以添加參考。

3 使用 IronXL 將資料表匯出到 Excel 文件

IronXL 使我們可以輕鬆地將資料表匯出到 Excel 文件中,步驟數非常有限。

首先,我們需要包含 IronXL 的命名空間,如下面的程式碼截圖所示。添加後,我們可以在程式碼中使用 IronXL 的類和方法。

如何透過C#將巨量資料從Datatable導出到Excel,第8步:在使用IronXL函式庫之前包含其命名空間

在使用庫之前包含 IronXL 的 namespace

IronXL 允許我們創建 Excel 文件並將其轉換為工作簿對象。將它們轉換為對象後,我們可以執行各種操作。在下面的示例代碼中,我們將把一個 Datatable 轉換為一個 Excel 工作表,然後我們可以創建一個 Excel 文件。

public static void ExportToExcel(string filePath)
{
    DataTable table = new DataTable();
    table.Columns.Add("DataSet_Animal", typeof(string));
    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");
    WorkBook wb = WorkBook.Create(ExcelFileFormat.XLS);
    WorkSheet ws = wb.DefaultWorkSheet;
    int rowCount = 1;
    foreach (DataRow row in table.Rows)
    {
        ws ["A" + (rowCount)].Value = row [0].ToString();
        rowCount++;
    }
    wb.SaveAsCsv(filePath, ";");
}
public static void ExportToExcel(string filePath)
{
    DataTable table = new DataTable();
    table.Columns.Add("DataSet_Animal", typeof(string));
    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");
    WorkBook wb = WorkBook.Create(ExcelFileFormat.XLS);
    WorkSheet ws = wb.DefaultWorkSheet;
    int rowCount = 1;
    foreach (DataRow row in table.Rows)
    {
        ws ["A" + (rowCount)].Value = row [0].ToString();
        rowCount++;
    }
    wb.SaveAsCsv(filePath, ";");
}
Public Shared Sub ExportToExcel(ByVal filePath As String)
	Dim table As New DataTable()
	table.Columns.Add("DataSet_Animal", GetType(String))
	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")
	Dim wb As WorkBook = WorkBook.Create(ExcelFileFormat.XLS)
	Dim ws As WorkSheet = wb.DefaultWorkSheet
	Dim rowCount As Integer = 1
	For Each row As DataRow In table.Rows
		ws ("A" & (rowCount)).Value = row (0).ToString()
		rowCount += 1
	Next row
	wb.SaveAsCsv(filePath, ";")
End Sub
VB   C#

在上述程式碼中,我們將資料表匯出至 Excel 檔案。首先,我們創建一個 DataTable,接著創建欄位標頭。創建欄位後,我們逐一添加欄位。一旦我們添加了欄位,就創建 Workbook 物件。通過使用該物件,我們可以將資料添加到 Excel 工作表,然後將資料保存到位置。我們正在創建 工作表 允許創建工作表的物件,然後我們可以將其添加到 WorkBook 物件中。

我們使用 foreach 迴圈逐一讀取資料表值,然後將值添加到工作表中。一旦所有值都添加到工作表中,我們就使用方法 SaveAsCSV 將它們保存為 CSV 檔案——我們需要將分隔符和檔案名稱(包括位置)作為參數傳遞。分隔符是一個可選參數,如果不需要可以忽略。

如何將巨量數據從 Datatable 匯出到 Excel 中的 C# 程式碼,圖 9:在 Visual Studio 中完成的代碼

在 Visual Studio 中完成的代碼

上述是我們在 .NET Core 6 中使用的完整代碼截圖。

結果:

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

當在 Microsoft Excel 中打開檔案的結果

上面是執行的程式碼範例結果。在截圖中,所有在數據表上的數據已一一新增到新建立的 Excel 表格中。

4 結論

IronXL 是最常用的 Excel 函式庫之一。它不依賴任何其他第三方函式庫,獨立運作且不需要安裝 MS Excel。它可在多個平台上運行。IronXL 的入門價格為 $liteLicense。此外,它提供一年的產品支援和更新費選項。IronXL 在額外費用中提供免權利金再分配覆蓋範圍。欲了解更多價格詳情,請訪問我們的 授權頁面.

< 上一頁
C# 程式化地開啟 Excel 檔案(代碼示例教程)
下一個 >
如何在 Excel 中移动行

準備開始了嗎? 版本: 2024.10 剛剛發布

免費 NuGet 下載 總下載次數: 1,023,839 查看許可證 >