跳過到頁腳內容
使用 IRONXL

如何將 DataTable 導出到 CSV 在 C#

IronXL 是一個流行的庫,它允許開發人員在 C# .NET 技術中與 Microsoft Excel 文件(包括 CSV 文件)進行交互,而無需安裝 Microsoft Excel。 它能夠自動將已註冊的類型轉換為 CSV 文件,並能夠使用自訂結構寫入 CSV 文件。

IronXL 庫功能

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

透過 IronXL 的用戶友好型 C# API,您可以在 .NET 環境中快速讀取、修改和建立 Excel 電子表格檔案。 IronXL 完全支援 .NET Core、.NET Framework、Xamarin、行動平台、Linux、macOS 和 Azure。

  • 領先的 .NET Core 和 .NET Framework Excel 試算表庫(適用於 C#)包括 IronXL。
  • IronXL 支援幾乎所有 .NET Framework,包括控制台、Windows Forms 和 Web。
  • IronXL 可在多種作業系統上運行,包括 Windows、Linux 和 macOS。
  • IronXL 讓讀取 Excel 檔案變得簡單快速。
  • IronXL 支援讀取不同的 Excel 檔案格式,包括 XLSX 檔案、XLS、CSV、TSV、XLST、XLSM 檔案等。 我們還可以載入、修改、匯出資料表、匯出資料集等等。
  • 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# 中將資料表匯出為 CSV 文件,圖 3:選擇 .NET Framework 版本 選擇 .NET Framework 版本

應用程式產生解決方案後,將開啟program.cs文件,以便您可以輸入程式碼並建置/執行應用程式。

如何在 C# 中將資料表匯出為 CSV 文件,圖 4:新建的控制台應用程式項目 新建立的控制台應用程式項目

然後就可以新增該庫並使用它來評估程式碼。

2. 安裝 IronXL 庫

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

其中包括:

  • 透過 Visual Studio 安裝
  • 使用 Visual Studio 套件管理器控制台進行安裝
  • 直接從 NuGet 網站下載
  • 直接從 IronXL 網站下載

使用 Visual Studio 安裝 IronXL

使用 NuGet 套件管理器可以安裝 IronXL 模組。 要找到 IronXL,您必須先啟動 NuGet 套件管理器,然後在瀏覽窗格中尋找。 從搜尋結果中選擇 IronXL 進行安裝。 之後,IronXL 庫就可以使用這個應用程式了。

下圖示範如何啟動 Visual Studio 的 NuGet 套件管理器。

如何在 C# 中將資料表匯出為 CSV 文件,圖 5:導覽至 NuGet 套件管理器 導覽至 NuGet 套件管理器

如何在 C# 中將資料表匯出為 CSV 檔案?圖 6:在 NuGet 套件管理器 UI 中安裝 IronXL 套件 在 NuGet 套件管理器 UI 中安裝 IronXL 套件

使用 Visual Studio NuGet 套件管理器控制台安裝 IronXL

許多人喜歡使用遊戲主機來完成任務。 因此,終端安裝也是一種選擇。 若要使用命令列安裝 IronXL,請依照下列說明操作。

  • 在 Visual Studio 中,導覽至"工具" > "NuGet 套件管理器" >"套件管理器介面"。
  • 在軟體包管理器的控制台標籤中輸入以下命令:

    Install-Package IronXL.Excel
  • 等待 IronXL 下載並安裝到目前專案中。

如何在 C# 中將資料表匯出為 CSV 檔案?圖 7:在套件管理器控制台 UI 中安裝 IronXL 套件 在軟體套件管理器控制台介面中安裝 IronXL 軟體套件

直接從 NuGet 網站下載 IronXL

第三種選擇是直接從網站下載 NuGet 套件。

  • 造訪官方 NuGet 連結
  • 下載包選擇位於右側選單中。
  • 雙擊已儲存的文件,即可立即安裝。
  • 之後重新載入解決方案,並開始在專案中使用它。

直接從 IronXL 網站獲取

若要直接從網站下載最新軟體包,請點擊此連結下載 IronXL ZIP 檔案。 此連結將下載包含最新版本 IronXL 庫 DLL 的 ZIP 檔案。 下載完成後,將 ZIP 檔案的內容解壓縮到您選擇的任意目錄。

下載檔案後,要將其新增至專案中,請按照下列步驟操作。

  • 在解決方案視窗中,右鍵點選項目。
  • 選擇"引用",然後導航至包含 IronXL DLL 的已解壓縮資料夾。
  • 選擇 DLL,然後按一下"確定"將其作為參考新增至活動項目。

3. 匯出為 CSV 文件

使用 IronXL 可以輕鬆快速地將資料表建立為 CSV 檔案。 它有助於將資料寫入新的 CSV 檔案。

首先,如下面的程式碼影像所示,應包含 IronXL 命名空間才能使用 IronXL 類別和方法。

如何在 C# 中將資料表匯出為 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# 中將資料表匯出為 CSV 文件,圖 9:輸出的 CSV 文件 輸出的 CSV 檔案

上面顯示的是運行程式碼範例的輸出結果。 在截圖中,資料表中的每一個資料都被單獨加入到新產生的 Excel 表格中。

要了解有關 IronXL 教程的更多信息,請點擊此鏈接以了解如何匯出到 Excel 格式

結論

IronXL是Excel中最受歡迎的工具之一。 它不依賴任何其他外部來源的庫。 它是獨立運作的,無需安裝微軟Excel。 它透過多個管道運作。

IronXL 提供了一個一體化解決方案,以程式設計方式實現所有與 Microsoft Excel 文件相關的任務。 您可以執行公式計算、字串或數字排序、修剪和追加、尋找和取代、合併和取消合併、儲存檔案等操作。您也可以設定儲存格資料格式並驗證電子表格資料。 它還支援讀寫 CSV 文件,幫助您像處理 Excel 資料一樣處理資料。

IronXL 的起售價為$799 。 它還為用戶提供支付一年訂閱費以獲得產品支援和更新的選項。 IronXL 提供額外付費的無限再分送安全保障。 如需了解更詳細的定價信息,請訪問此許可頁面

常見問題解答

如何在 C# 中將 DataTable 匯出成 CSV 檔案?

您可以使用 IronXL 將 DataTable 匯出為 CSV 檔案,方法是建立 WorkBook 並將資料匯出為工作表物件。這可在不需要 Microsoft Excel 的情況下進行無縫轉換和匯出。

使用這個函式庫可以匯出哪些檔案格式?

IronXL 允許將資料匯出成各種格式,例如 XLS、CSV、TSV 和 JSON,提供處理不同資料需求的彈性。

是否可以使用這個函式庫執行類似 Excel 的操作?

是的,IronXL.Excel 實現了類似 Excel 的操作,例如公式計算、資料排序和檔案儲存,使其成為 Excel 相關編程工作的綜合工具。

我需要安裝 Microsoft Excel 才能使用這個函式庫嗎?

不,IronXL for .NET 是一個獨立的 .NET 函式庫,不需要安裝 Microsoft Excel,讓開發人員可以直接在他們的 C# 應用程式中處理 Excel 文件。

這個函式庫與哪些平台相容?

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

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

IronXL 可透過存取 NuGet Package Manager 或直接從 NuGet 或 IronXL 網站下載,安裝在使用 Visual Studio 的 .NET 專案中。

這個資料庫有哪些定價方式?

IronXL 提供起始價格與一年訂閱的選項,包括產品協助與更新,提供持續支援並可存取最新功能。

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