使用IRONXL

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

里根普恩
里根普恩
2022年6月26日
已更新 2024年1月7日
分享:

以程式方式更改 Excel 試算表可能會很困難,主要有兩個原因。 首先,處理試算表時,用戶必須保持一致的介面和文件結構,但這並不總是很簡單。 其次,當涉及複雜計算時,並不總是清楚哪些代碼能在特定情況下運行。 以程式方式建立 Excel 文件存在諸多困難原因。 程式設計師必須先將 Excel 文件中的資料轉換成可讀格式,然後解析資料並解析回去,這更加困難。 我已提出了解决此問題的方案。 我將教您如何製作一個 Excel 文件,並使用 IronXL .NET Excel 庫無需任何問題以程式方式將資料表導出到 Excel 工作表。 開始吧:

IronXL 功能

  • IronXL 可以在多種作業系統上運行,包括 Windows、LinuxmacOS
  • 幾乎所有的 .NET Framework 均由 IronXL 支援,包括主控台應用程式、Windows Forms 應用程式和網路應用程式
  • IronXL使讀取Excel文件變得簡單和容易。
  • 我們可以使用IronXL載入、編輯、匯出Datatables、匯出資料集,並讀取Excel檔案格式,例如XLSX檔案、XLS、CSV、TSV、XLST、XLSM檔案等等。
  • IronXL 允許我們保存及匯出檔案,可使用多種副檔名,包括 XLS、CSV、TSV、JSON、XLSX 等。
  • Excel 公式可以由 IronXL 創建。
  • 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 或不同專案範本的應用程式。 在這個教程中,我將使用主控台應用程式,以便更簡單。

如何將大量數據從DataTable匯出到Excel中 C#, 圖1:在Visual Studio中建立新專案UI

在 Visual Studio 中建立新的專案 UI

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

如何將大量資料從 Datatable 匯出至 Excel(C#),圖 2:建立新專案的配置步驟

建立新專案的配置步驟

接下來,請選擇下列框架。 在此專案中,我們將使用 .NET Core 6。

如何將大量數據從 Datatable 匯出到 Excel 中的 C#,圖 3: .Net Framework 選擇界面

.Net Framework 選擇 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

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

如何在C#中將表格中的龐大數據導出到Excel,第7圖:通過控制台安裝IronXL包

透過控制台安裝IronXL套件

2.3 從 NuGet 網站直接下載

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

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

2.4 從 IronXL 網站直接下載

點擊連結從網站直接下載最新的包。下載完成後,按照下面的步驟將包新增到專案中。

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

使用 IronXL 將數據表導出到 Excel 文件

IronXL 讓我們能夠以有限的步驟輕鬆將數據表導出到 Excel 文件。

首先,我們需要像下面的代碼截圖中那樣包含IronXL的命名空間。 一旦添加後,我們就可以在代碼中使用 IronXL 類和方法。

如何將巨量資料從Datatable匯出到Excel(C#),圖8:使用程式庫前,請包含IronXL的命名空間

在使用該庫之前包含IronXL的namespace

IronXL 允許我們創建 Excel 文件並將其轉換為工作簿對象。 將它們轉換為物件後,我們可以執行各種操作。 在下面的範例程式碼中,我們將把一個資料表轉換成 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
$vbLabelText   $csharpLabel

在上述代碼中,我們正在將資料表匯出到 Excel 文件。首先,我們創建一個DataTable,然後創建欄位標題。 創建列之後,我們逐一添加列。 一旦我們添加了該列,然後我們創建WorkBook對象。 透過使用該物件,我們可以將數據添加到 Excel 工作表,然後將數據保存至指定位置。 我們正在創建WorkSheet對象,這允許創建工作表,然後我們可以將其添加到WorkBook對象中。

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

如何在 C# 中將大量資料從 Datatable 匯出到 Excel,圖 9:Visual Studio 中的完整程式碼

Visual Studio 中的已完成程式碼

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

結果:

如何將大量資料從DataTable匯出至Excel(C#),圖10:在Microsoft Excel中開啟檔案的結果

在 Microsoft Excel 中開啟檔案時的結果

以上是執行程式碼範例的結果。 在截圖中,數據表上的所有數據都已一一添加到新創建的 Excel 表中。

4 結論

IronXL 是最常用的 Excel 函式庫之一。 它不依賴於任何其他第三方庫。 它是獨立的,不需要安裝 MS Excel。 它可在多個平台上運行。 IronXL 的初始價格為$749。 此外,它提供為期一年的產品支持和更新選項。 IronXL 提供免版稅再分發服務,需額外付費。如需了解價格詳情,請造訪我們的授權頁面

里根普恩
軟體工程師
Regan 畢業於雷丁大學,擁有電子工程學士學位。在加入 Iron Software 之前,他的工作角色讓他專注於單一任務;而他在 Iron Software 工作中最喜歡的是他所能承擔的工作範圍,無論是增加銷售價值、技術支持、產品開發或市場營銷。他喜歡了解開發人員如何使用 Iron Software 庫,並利用這些知識不斷改進文檔和開發產品。
< 上一頁
C# 程式化地開啟 Excel 檔案(代碼示例教程)
下一個 >
如何在 Excel 中移动行