跳至頁尾內容
使用 IRONXL

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

IronXL 能夠在 C# 中實現DataTable到 CSV 的無縫轉換,而無需安裝 Microsoft Excel。 這個獨立的 .NET 函式庫提供了一個簡單的 API,可以自動將DataTables轉換為具有自訂結構和分隔符號的 CSV 文件,使開發人員能夠輕鬆地匯出資料。

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

IronXL Library 提供哪些功能?

使用 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、行動平台、 LinuxmacOSAzure

  • 領先的 .NET Core 和 .NET Framework Excel 試算表庫(適用於 C#)包括 IronXL。
  • 幾乎所有 .NET Framework 版本都受支持,包括控制台應用程式、Windows 窗體應用程式和 Web 應用程式。
  • IronXL 可在 Windows、Linux 和 macOS 作業系統上運作。
  • IronXL 讓讀取 Excel 檔案變得簡單快速。
  • IronXL 支援多種 Excel 格式:XLSX、XLS、CSV、TSV、XLST 和 XLSM 檔案。
  • IronXL 可將檔案匯出為多種格式,包括 XLS、CSV、TSV、JSON 和 XML。
  • IronXL 可產生 Excel 計算結果並支援公式。
  • IronXL 支援 Excel 列資料格式,包括文字、數字、日期、貨幣和百分比。

更多詳情請瀏覽IronXL 文件概述

如何在 Visual Studio 中建立新專案?

在 Visual Studio 中,必須先建立一個 .NET 專案才能使用 IronXL 框架。 任何版本的 Visual Studio 都可以使用,但建議使用最新版本。 根據您的需要,您可以建立 Windows 窗體應用程式或不同的專案範本。 為了簡單起見,本教學將使用控制台應用程式。

Visual Studio 的"建立新專案"對話方塊顯示了各種 .NET 專案模板,包括控制台應用程式、ASP.NET Core Web 應用程式和 Blazor 伺服器應用程式選項。 在 Visual Studio 中建立一個新項目

之後,輸入項目名稱和地點。

Visual Studio 專案配置對話方塊顯示了名為"ConsoleApp1"的新 C# 控制台應用程式的設置,目標平台為 Windows,輸出平台為控制台。 配置新項目

接下來,選擇以下結構。 本專案將使用.NET Core 6。

Visual Studio 專案建立對話方塊顯示控制台應用程式配置,並選擇了 .NET 6.0(長期支援)作為框架。 選擇 .NET Framework 版本

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

Visual Studio 中顯示的空白 C# 控制台應用程式窗口,展示了 IronXLConsole 專案及其初始程式碼結構,準備實現 CSV 匯出功能。 新建立的控制台應用程式項目

然後就可以新增該庫並使用它來評估程式碼。 對於其他項目類型,例如.NET MAUI 應用程式VB.NET 項目,該過程類似,但需要考慮框架特定的因素。

如何安裝 IronXL 庫?

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

其中包括:

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

我該用哪一種方法安裝 Visual Studio?

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

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

Visual Studio 工具選單已展開,在工具下拉選單下反白顯示了 NuGet 套件管理器選項和套件管理器控制台。 導覽至 NuGet 套件管理器

NuGet 套件管理器介面顯示 IronXL.Excel 套件,版本為 2022.3.0,顯示下載次數為 133K,並附有"安裝"按鈕,方便整合。 在 NuGet 套件管理器 UI 中安裝 IronXL 套件

何時應該使用軟體包管理器控制台?

許多開發者喜歡使用控制台來執行任務。 因此,終端安裝也是一種選擇。 若要使用命令列安裝 IronXL,請依照下列說明操作。

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

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

Visual Studio 中的套件管理器控制台顯示命令"Install-Package IronXL.Excel",並顯示安裝成功的確認訊息。 在軟體套件管理器控制台介面中安裝 IronXL 軟體套件

我為什麼要從 NuGet 網站下載?

第三種選擇是直接從網站下載 NuGet 套件。 當網路存取受限或需要手動管理軟體包時,這種方法特別有用。

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

如何直接從 IronXL 網站安裝?

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

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

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

對於部署方案,您也可以將 IronXL 設定在 Docker 容器中,或部署到AWS LambdaAzure Functions等雲端平台。

如何將DataTable匯出為 CSV 檔案?

使用 IronXL 可以輕鬆快速地將DataTables匯出為 CSV 檔案。 它支援自訂分隔符號和編碼選項,幫助將資料寫入新的 CSV 檔案。

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

! C# 程式碼編輯器顯示"using IronXL;"和"using System.Data;"命名空間聲明,並對 DataTable 到 CSV 匯出實作進行語法高亮顯示。 新增通用命名空間

可以使用 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, ";");
}
$vbLabelText   $csharpLabel

以上程式碼將DataTable匯出到 Excel 檔案。列標題在DataTable建立完成後自動產生。 然後,在確定第一列之後,逐行新增後續行。 在DataTable物件新增列和行以儲存這些資料之後,就會建立WorkBook物件。 然後建立WorkSheet對象,並將其新增至WorkBook物件中。

使用foreach循環讀取DataTable中的每個值,然後將其加入WorkSheet 。 將所有值新增至工作表後, SaveAsCsv方法會將它們儲存到 CSV 檔案中。您可以將分隔符號和檔案位置都指定為參數。

對於更複雜的場景,您可能需要將多個資料表匯出為不同的工作表,或使用資料集進行更結構化的資料組織。

使用不同的 CSV 格式

IronXL 在處理 CSV 檔案時提供了靈活性。 以下範例展示如何匯出具有自訂格式和編碼的DataTable

// Export with custom delimiter and encoding
public static void ExportToCSVWithOptions(DataTable dataTable, string filepath)
{
    // Create workbook from DataTable
    WorkBook wb = WorkBook.Create(ExcelFileFormat.XLSX);
    WorkSheet ws = wb.CreateWorkSheet("DataExport");

    // Add headers
    for (int i = 0; i < dataTable.Columns.Count; i++)
    {
        ws[$"{(char)('A' + i)}1"].Value = dataTable.Columns[i].ColumnName;
    }

    // Add data rows
    for (int row = 0; row < dataTable.Rows.Count; row++)
    {
        for (int col = 0; col < dataTable.Columns.Count; col++)
        {
            ws[$"{(char)('A' + col)}{row + 2}"].Value = dataTable.Rows[row][col];
        }
    }

    // Save with custom delimiter (comma) and UTF-8 encoding
    wb.SaveAsCsv(filepath, ",", System.Text.Encoding.UTF8);
}
// Export with custom delimiter and encoding
public static void ExportToCSVWithOptions(DataTable dataTable, string filepath)
{
    // Create workbook from DataTable
    WorkBook wb = WorkBook.Create(ExcelFileFormat.XLSX);
    WorkSheet ws = wb.CreateWorkSheet("DataExport");

    // Add headers
    for (int i = 0; i < dataTable.Columns.Count; i++)
    {
        ws[$"{(char)('A' + i)}1"].Value = dataTable.Columns[i].ColumnName;
    }

    // Add data rows
    for (int row = 0; row < dataTable.Rows.Count; row++)
    {
        for (int col = 0; col < dataTable.Columns.Count; col++)
        {
            ws[$"{(char)('A' + col)}{row + 2}"].Value = dataTable.Rows[row][col];
        }
    }

    // Save with custom delimiter (comma) and UTF-8 encoding
    wb.SaveAsCsv(filepath, ",", System.Text.Encoding.UTF8);
}
$vbLabelText   $csharpLabel

這種方法可以讓你更好地控制匯出過程,讓你設定單元格資料格式並自訂輸出結構。

! Excel 電子表格顯示 A 列中的水果清單(蘋果、柳橙、草莓、葡萄、西瓜、香蕉、檸檬),採用正確的 CSV 格式,沒有額外的分隔符號。 輸出的 CSV 檔案

上面顯示的是運行程式碼範例的輸出結果。 在截圖中,資料表中的每一個資料都被單獨加入到新產生的 Excel 表格中。 您也可以在匯出之前對儲存格套用格式,或新增公式以計算值。

對於更進階的 CSV 操作,您可以: -讀取帶有自訂分隔符號的 CSV 文件

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

為什麼我應該使用 IronXL 進行 CSV 匯出?

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

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

其他福利包括:

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

常見問題解答

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

您可以使用 IronXL 將資料表匯出為 CSV 文件,方法是建立一個工作簿並將資料匯出到工作表物件中。這樣可以實現無縫轉換和匯出,而無需使用 Microsoft 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 庫?

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

該圖書館有哪些定價方案?

IronXL 提供起價,並提供一年訂閱選項,其中包括產品協助和更新,提供持續支援和最新功能存取權限。

喬迪·巴迪亞
軟體工程師
喬迪精通Python、C#和C++,除了在Iron Software運用這些技能外,他還從事遊戲程式設計。他參與產品測試、產品開發和研究等工作,為產品的持續改進做出了巨大貢獻。豐富的經驗讓他始終保持挑戰性和工作熱情,他表示這是他最喜歡在Iron Software工作的原因之一。喬迪在佛羅裡達州邁阿密長大,畢業於佛羅裡達大學,主修電腦科學和統計學。