跳過到頁腳內容
使用 IRONXL

如何將 DataTable 導出到 CSV 在 C#

IronXL 是一個受歡迎的庫,它允許開發人員在不需要安裝 Microsoft Excel 的情況下,使用 C# .NET 技術與 Microsoft Excel 文檔(包括 CSV 文件)進行交互。 它可以自動將註冊類型轉換為 CSV 文件,並使用自定義結構寫入 CSV 文件。

IronXL 庫功能

使用 C# IronXL .NET 庫可以讀取 Microsoft Excel 文件並轉換為 CSV 文件。 IronXL 是一個獨立的 .NET 軟體庫,能夠讀取多種電子表格格式。 它不依賴於 Microsoft.Office.Interop.Excel 或需要安裝 Microsoft Excel。

在 IronXL 的用戶友好的 C# API 的幫助下,您可以快速在 .NET 環境中讀取、修改和創建 Excel 試算表文件。 .NET Core、.NET Framework、Xamarin、移動作業系統、Linux、macOS 和 Azure 全都受到 IronXL 的完整支持。

  • 領先的 .NET Core 和 .NET Framework Excel 試算表庫包括 IronXL。
  • 幾乎所有 .NET 框架,包括主控台、Windows Forms 和網頁,都受到 IronXL 的支持。
  • IronXL 可運行在 Windows、Linux 和 macOS 等多種作業系統上。
  • IronXL 使得讀取 Excel 文件變得簡單而快速。
  • IronXL 支持讀取包括 XLSX 文件、XLS、CSV、TSV、XLST、XLSM 文件等在內的不同 Excel 文件格式。 我們還可以加載、修改、匯出數據表、匯出數據集等。
  • IronXL 可以匯出並保存帶有多種後綴名的文件,包括 XLS、CSV、TSV、JSON 等。
  • IronXL 可以生成Excel 計算
  • IronXL 支持多種Excel 列數據格式,包括文本、數字、公式、日期、貨幣和百分比。

欲了解更多詳情,請訪問此處

1. 在Visual Studio中創建新項目

在 Visual Studio 中,需要創建一個 .NET 項目才能使用 IronXL 框架。 任何版本的 Visual Studio 都可以使用,但建議使用最新版本。 根據您的需求,您可以建立類似 Windows Forms 的應用程式或不同的項目模板。 為了簡化過程,本教程將使用主控台應用程式。

!如何在 C# 中將 DataTable 匯出為 CSV,圖 1:在 Visual Studio 中創建一個新項目 在 Visual Studio 中創建新項目

然後輸入項目的名稱和位置。

!如何在 C# 中將 DataTable 匯出為 CSV,圖 2:配置新項目 配置新項目

接下來選擇以下結構。 .NET Core 6 將在此任務中使用。

!如何在 C# 中將 DataTable 匯出為 CSV,圖 3:選擇 .NET 框架版本 選擇 .NET Framework 版本

應用程序生成解決方案後將打開 program.cs 文件,以便您可以輸入程序代碼並構建/運行應用程序。

!如何在 C# 中將 DataTable 匯出為 CSV,圖 4:新創建的主控台應用程序項目 新創建的主控台應用程序項目

然後可以添加庫並用於評估代碼。

2. 安裝 IronXL 庫

有四種方法可下載和安裝 IronXL 庫。

分別是:

  • 通過 Visual Studio 安裝
  • 使用 Visual Studio 包管理控制台安裝
  • 從 NuGet 網站直接下載
  • 從 IronXL 網站直接下載

使用 Visual Studio 安裝 IronXL

使用 NuGet 包管理器可以安裝 IronXL 模塊。 要查找 IronXL,您必須先啟動 NuGet 包管理器,然後查看瀏覽窗格。 從搜索列表中選擇 IronXL 進行安裝。 安裝完成後,該應用程序將能夠使用 IronXL 庫。

下圖展示如何啟動 Visual Studio 的 NuGet 包管理器。

!如何在 C# 中將 DataTable 匯出為 CSV,圖 5:導航至 NuGet 包管理器 導航至 NuGet 包管理器

!如何在 C# 中將 DataTable 匯出為 CSV,圖 6:在 NuGet 包管理器 UI 中安裝 IronXL 包 在 NuGet 包管理器 UI 中安裝 IronXL 包

使用 Visual Studio NuGet 包管理控制台安裝 IronXL

許多人喜歡使用控制台來執行任務。 因此,也可以選擇終端安裝。 要使用命令行安裝 IronXL,請遵循以下指示。

  • 在 Visual Studio 中導航到 工具 > NuGet 包管理器 > 包管理器界面。
  • 在包管理控制台的控制台選項卡中輸入以下命令:

    Install-Package IronXL.Excel
  • 等待 IronXL 下載並安裝到活動項目中。

!如何在 C# 中將 DataTable 匯出為 CSV,圖 7:在包管理器控制台 UI 中安裝 IronXL 包 在包管理器控制台 UI 中安裝 IronXL 包

從 NuGet 網站直接下載 IronXL

作為第三種選擇,NuGet 包可以直接從網站下載。

  • 探索 官方 NuGet 連結
  • 下載包選項在右邊的菜單中可以找到。
  • 點擊保存的文件兩次。它將立即被安裝。
  • 然後重新載入解決方案並開始在項目中使用。

直接從 IronXL 網站獲取

要從網站直接下載最新包,請點擊此鏈接以下載 IronXL ZIP 文件。 此鏈接將下載一個包含最新版本 IronXL 庫 DLL 的 ZIP 文件。 下載完成後,將 ZIP 文件的內容提取到您選擇的任何目錄中。

要在下載後添加文件到項目,請遵循以下步驟。

  • 從解決方案視窗,右鍵點選項目。
  • 選擇參考,然後導航到包含 IronXL DLL 的解壓文件夾。
  • 選擇 DLL,然後點選“確定”,將其作為引用添加到活動項目。

3. 匯出到 CSV 文件

使用 IronXL 可以輕鬆快速地創建以 CSV 文件形式出現的 DataTables。 它有助於將數據寫入新的 CSV 文件中。

首先,如下圖代碼所示,應包括 IronXL 的命名空間以使用 IronXL 的類和方法。

!如何在 C# 中將 DataTable 匯出為 CSV,圖 8:添加常用命名空間 添加常用命名空間

可以使用 IronXL 創建 Excel 文件,然後將其轉換為WorkBook 對象。 然後在將其轉變為對象後對其進行多種操作。 下面的示例代碼將通過將 DataTable 轉換為 Excel 工作表來構建一個 Excel 文件。

using IronXL;
using System.Data;

// Entry point of the application
static void Main(string[] args)
{
    // Specify the file path for the CSV file output
    ExportToExcel("H:\\test.csv");
}

// Exports the DataTable to an Excel file and saves it as CSV
public static void ExportToExcel(string filepath)
{
    // Create a DataTable and add columns and rows
    DataTable table = new DataTable();
    table.Columns.Add("DataSet_Fruits", typeof(string));
    table.Rows.Add("Apple");
    table.Rows.Add("Orange");
    table.Rows.Add("Strawberry");
    table.Rows.Add("Grapes");
    table.Rows.Add("Watermelon");
    table.Rows.Add("Bananas");
    table.Rows.Add("Lemons");

    // Create a new WorkBook and add the DataTable data to it
    WorkBook wb = WorkBook.Create(ExcelFileFormat.XLS);
    var writer = wb.DefaultWorkSheet;
    int rowCount = 1;
    foreach (DataRow row in table.Rows)
    {
        // Write each item from the DataTable into the worksheet starting from cell A1
        writer["A" + (rowCount)].Value = row[0].ToString();
        rowCount++;
    }
    // Save the workbook as a CSV file with a specified delimiter
    wb.SaveAsCsv(filepath, ";");
}
using IronXL;
using System.Data;

// Entry point of the application
static void Main(string[] args)
{
    // Specify the file path for the CSV file output
    ExportToExcel("H:\\test.csv");
}

// Exports the DataTable to an Excel file and saves it as CSV
public static void ExportToExcel(string filepath)
{
    // Create a DataTable and add columns and rows
    DataTable table = new DataTable();
    table.Columns.Add("DataSet_Fruits", typeof(string));
    table.Rows.Add("Apple");
    table.Rows.Add("Orange");
    table.Rows.Add("Strawberry");
    table.Rows.Add("Grapes");
    table.Rows.Add("Watermelon");
    table.Rows.Add("Bananas");
    table.Rows.Add("Lemons");

    // Create a new WorkBook and add the DataTable data to it
    WorkBook wb = WorkBook.Create(ExcelFileFormat.XLS);
    var writer = wb.DefaultWorkSheet;
    int rowCount = 1;
    foreach (DataRow row in table.Rows)
    {
        // Write each item from the DataTable into the worksheet starting from cell A1
        writer["A" + (rowCount)].Value = row[0].ToString();
        rowCount++;
    }
    // Save the workbook as a CSV file with a specified delimiter
    wb.SaveAsCsv(filepath, ";");
}
Imports IronXL
Imports System.Data

' Entry point of the application
Shared Sub Main(ByVal args() As String)
	' Specify the file path for the CSV file output
	ExportToExcel("H:\test.csv")
End Sub

' Exports the DataTable to an Excel file and saves it as CSV
Public Shared Sub ExportToExcel(ByVal filepath As String)
	' Create a DataTable and add columns and rows
	Dim table As New DataTable()
	table.Columns.Add("DataSet_Fruits", GetType(String))
	table.Rows.Add("Apple")
	table.Rows.Add("Orange")
	table.Rows.Add("Strawberry")
	table.Rows.Add("Grapes")
	table.Rows.Add("Watermelon")
	table.Rows.Add("Bananas")
	table.Rows.Add("Lemons")

	' Create a new WorkBook and add the DataTable data to it
	Dim wb As WorkBook = WorkBook.Create(ExcelFileFormat.XLS)
	Dim writer = wb.DefaultWorkSheet
	Dim rowCount As Integer = 1
	For Each row As DataRow In table.Rows
		' Write each item from the DataTable into the worksheet starting from cell A1
		writer("A" & (rowCount)).Value = row(0).ToString()
		rowCount += 1
	Next row
	' Save the workbook as a CSV file with a specified delimiter
	wb.SaveAsCsv(filepath, ";")
End Sub
$vbLabelText   $csharpLabel

上述代碼將 DataTable 匯出為 Excel 文件。一旦創建了 DataTable,將創建列標題。 然後,在建立第一列後,一次添加行。 在將列和行添加到 DataTable 對象後,創建 WorkBook 對象以保存這些數據。 隨後構建 WorkSheet 對象,並將其添加到 WorkBook 對象中。

使用foreach 迴圈從DataTable中讀取每個值並將其添加到WorkSheet中。 將所有值添加到工作表後,使用SaveAsCsv 方法將它們保存到 CSV 文件中;同時,我們還可以將分隔符和具體位置的文件名作為參數。

!如何在 C# 中將 DataTable 匯出為 CSV,圖 9:輸出 CSV 文件 輸出 CSV 文件

上面顯示了運行代碼示例的輸出結果。 在截圖中,數據表中的每塊數據都被單獨添加到了新創建的 Excel 表格中。

欲了解更多關於 IronXL 教程的信息,請點擊這個如何匯出為 Excel 格式

結論

IronXL 是最受歡迎的 Excel 工具之一。 它不依賴於任何來自外部資源的庫。 它是自助的,並不需要安裝 Microsoft Excel。 它可以在多個渠道上運行。

IronXL 為所有 Microsoft Excel 文檔相關的任務提供了一個可以程式化實現的一站式解決方案。 您可以進行公式計算、字串或數字排序、修剪和附加、查找和替換、合併和拆分、保存文件等。您還可以設置單元格數據格式及驗證表格數據。 它還支持讀寫 CSV 文件,並幫助您像使用 Excel 數據一樣運作。

IronXL 的起價從$799開始。 它還為用戶提供了支付一年訂閱費以獲得產品援助和更新的選擇。 IronXL 提供了不受限制地重新分發安全性的附加費用。 欲了解更多關於定價的信息,請訪問此授權頁面

常見問題解答

如何在 C# 中將 DataTable 匯出為 CSV 文件?

您可以使用 IronXL 匯出 DataTable 至 CSV 文件,通過創建 WorkBook 並將數據匯入工作表對象中。這可實現無縫轉換和匯出,無需微軟 Excel。

我可以使用此庫匯出什麼文件格式?

IronXL 允許將數據匯出為多種格式,如 XLS、CSV、TSV 和 JSON,提供處理不同數據需求的靈活性。

是否可以使用此庫執行類似 Excel 的操作?

是的,IronXL 支援類似 Excel 的操作,例如公式計算、數據排序和文件保存,是一個全面的 Excel 相關編程任務工具。

我需要安裝 Microsoft Excel 才能使用此庫嗎?

不需要,IronXL 是一個獨立的 .NET 庫,不需要安裝 Microsoft Excel,允許開發者直接在 C# 應用程式中處理 Excel 文件。

此庫與哪些平台相容?

IronXL 與多個平台相容,包括 .NET Core、.NET Framework、Xamarin,以及操作系統如 Windows、Linux 和 macOS。

如何在我的專案中安裝 IronXL 庫?

可以在 .NET 專案中使用 Visual Studio 安裝 IronXL,透過訪問 NuGet 套件管理器或從 NuGet 或 IronXL 網站直接下載。

有哪些價位選項可用於此庫?

IronXL 提供起始價,選項包含一年的訂閱,提供產品協助和更新,從而提供持續支持和獲取最新功能。

Jordi Bardia
軟體工程師
Jordi 在 Python、C# 和 C++ 上最得心應手,當他不在 Iron Software 展現技術時,便在做遊戲編程。在分担产品测测试,产品开发和研究的责任时,Jordi 为持续的产品改进增值。他说这种多样化的经验使他受到挑战并保持参与, 而这也是他与 Iron Software 中工作一大乐趣。Jordi 在佛罗里达州迈阿密长大,曾在佛罗里达大学学习计算机科学和统计学。