使用IRONXL

如何在 C# 中匯出檔案到 CSV

里根普恩
里根普恩
2023年11月14日
已更新 2024年8月23日
分享:

本文將對比和比較各種方法,這些方法是 .NET 技術如何使用最著名的庫之一IronXL以編程方式介入 Microsoft Excel 文件。 此外,它將建立一個設定,用於將 Excel 試算表寫入、讀取和匯出為 CSV 檔案。

1.1 什麼是 .NET Framework?

Microsoft 創建了專有的.NET Framework,這是一個主要與 Microsoft Windows 相容的軟體框架。 它作為主要的公共語言基礎結構 (CLI) 的實現,直到跨平台的 .NET 項目取而代之。 它提供多種不同程式語言的相容性,並附帶一個大型的類別庫,稱為框架類別庫(FCL)。

1.2 什麼是 CSV?

一種稱為「逗號分隔值」的文本文件格式使用逗號來將值分隔為不同的欄。 表格數據以CSV格式的純文字檔案存儲,其中每行通常對應一個數據記錄。 在 CSV 文件中,每個記錄都有相同數量的字段,這些字段由逗號分隔。

2.0 IronXL 函式庫功能

可以使用 IronXL for .NET C# Excel 程式庫讀取 Microsoft Excel 文件並將其轉換為 CSV 文件。 不用安裝 Microsoft Office 或 Microsoft.Office.Interop.Excel,用戶可以使用 IronXL,一個獨立的 .NET 軟體庫。 它能讀取多種電子表格格式。

IronXL 的簡單 C# API 使在 .NET 環境中讀取、編輯和生成 Excel 試算表變得輕鬆。 IronXL完全支援Xamarin、Linux、macOS、Azure、.NET Core和.NET Framework。

  • IronXL 是一個兼容 .NET Core 和 .NET Framework 的 C# 庫,是 Excel 試算表中最好的之一。
  • IronXL 支援幾乎所有 .NET Framework,包括 Web 應用程式、Windows Forms 和主控台。
  • IronXL 可以在 Linux、macOS 和 Windows 作業系統上使用。
  • IronXL 可快速輕鬆地存取 Excel 文件。
  • IronXL 能夠讀取多種 Excel 檔案類型,包括 XLSX、CSV、XLS、XLST、TSV、XLSM 等。 導入、更新和導出數據表和數據集的功能僅僅是這個庫眾多選項中的一小部分。
  • 針對 Excel 試算表,IronXL 能夠執行計算
  • IronXL 支援多種資料類型 用於 Excel 欄,包括文字、整數、日期、貨幣、公式和百分比。
  • IronXL 可以以日期、貨幣、百分比、文本、數字、公式等 Excel 欄位資料類型的形式處理多個值

    若要了解如何匯出資料至 Excel,請參考此教程

3.0 在 Visual Studio 中建立新專案

打開Visual Studio,在使用IronXL庫之前創建一個.NET專案。 Visual Studio 可以在任何版本中使用,但建議使用最新版本。 為了簡化,本篇文章將使用主控台應用程式作為此示例。

![如何在 C# 中導出文件為 CSV,圖1:打開 Visual Studio,進入「文件」菜單,選擇「新建項目」。 從各種 .NET 專案模板中選擇 "Console App"。

**開啟 Visual Studio,進入「檔案」選單並選擇「新專案」。 從各種 .NET 專案範本中選擇「Console App」。

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

如何在C#中導出文件到CSV,圖2:在Visual Studio中創建一個新專案

在 Visual Studio 中創建一個新專案

下拉選單可以用來選擇 .NET Framework。 此專案選擇了.NET Framework 4.7。 接下來,點擊建立按鈕。

當應用程式生成解決方案時,program.cs 文件將會開啟,允許您輸入程式碼並構建/運行程式。

如何在C#中匯出檔案為CSV,圖 3:當控制台應用程式項目成功創建後,Program.cs 檔案將會開啟。

成功建立主控台應用程式專案後,Program.cs 檔案將會開啟。

要測試程式碼,下一步是添加IronXL庫。

安裝 IronXL 函式庫,因為它是下個修正所需的。 若要這麼做,請在 NuGet 套件管理器主控台中輸入以下命令:

Install-Package IronXL.Excel

如何在 C# 中導出文件為 CSV,圖 4:在 NuGet 套件管理器控制台中安裝 IronXL 包

在 NuGet 套件管理器主控台中安裝 IronXL 套件

另一個選擇是使用 NuGet 套件管理器來查找名為 "IronXL" 的套件,然後從這個與 IronXL 相關的所有 NuGet 套件清單中選擇需要的套件下載。

如何在C#中導出文件為CSV,圖5:使用NuGet包管理器安裝IronXL包

使用 NuGet 套件管理員安裝 IronXL 套件

4.0 匯出至 CSV 文件

IronXL 使創建字串數組到CSV文件變得簡單快捷。 寫入 CSV 檔案因此變得更簡單。 首先,包含 IronXL 命名空間,如下圖的程式碼截圖所示。 然後,一旦代碼顯示出來,使用IronXL的類和方法。

如何在C#中導出文件為CSV,圖6:包含IronXL命名空間

包含 IronXL 命名空間

可以使用IronXL創建Excel文件,然後將其轉換為工作簿對象。 此物件提供多種方法來處理它們。 下面的程式碼範例通過將陣列字串轉換為 Excel 工作表來生成 Excel 文件。

using IronXL;
using IronXL.Options;
using System.Data;

static void Main ( string [ ] args ) { 
    string [] students = {"AAA", "BBB", "CCC", "DDD", "EEE", "FFF" };
    var workBook = WorkBook.Create(ExcelFileFormat.XLS);
    var writer = workBook.DefaultWorkSheet;
    int rowCount = 1;
    foreach(var student in students)
    {
        writer ["A" + (rowCount)].Value = rowCount.ToString();
        writer ["B" + (rowCount)].Value = student.ToString();
        rowCount++;
    }
    workBook.SaveAsCsv("Sample.csv", ";");
    // or
    var stream = workBook.ToStream();
}
using IronXL;
using IronXL.Options;
using System.Data;

static void Main ( string [ ] args ) { 
    string [] students = {"AAA", "BBB", "CCC", "DDD", "EEE", "FFF" };
    var workBook = WorkBook.Create(ExcelFileFormat.XLS);
    var writer = workBook.DefaultWorkSheet;
    int rowCount = 1;
    foreach(var student in students)
    {
        writer ["A" + (rowCount)].Value = rowCount.ToString();
        writer ["B" + (rowCount)].Value = student.ToString();
        rowCount++;
    }
    workBook.SaveAsCsv("Sample.csv", ";");
    // or
    var stream = workBook.ToStream();
}
Imports IronXL
Imports IronXL.Options
Imports System.Data

Shared Sub Main(ByVal args() As String)
	Dim students() As String = {"AAA", "BBB", "CCC", "DDD", "EEE", "FFF" }
	Dim workBook = WorkBook.Create(ExcelFileFormat.XLS)
	Dim writer = workBook.DefaultWorkSheet
	Dim rowCount As Integer = 1
	For Each student In students
		writer ("A" & (rowCount)).Value = rowCount.ToString()
		writer ("B" & (rowCount)).Value = student.ToString()
		rowCount += 1
	Next student
	workBook.SaveAsCsv("Sample.csv", ";")
	' or
	Dim stream = workBook.ToStream()
End Sub
$vbLabelText   $csharpLabel

上述的代碼-CSV範例將把陣列匯出為Excel文件。欄位標題會在建構陣列後建立。 當第一列建立時,行將逐個添加。 WorkBook 物件是在資料已添加到陣列字串後建立的。 您可以使用WorkBook物件將資料新增到 Excel 工作表,然後將其儲存到其他位置。 目標是透過建立WorkSheet 物件來創建工作表,該物件可以連結到工作簿物件。

在將每個項目新增到試算表之前,使用foreach迴圈從陣列字串中讀取每個項目。 當所有資料都輸入到工作表中時,數據將使用SaveAsCsv方法保存為CSV文件。 除了分隔符之外,檔案名稱和位置也可以作為可選參數提供。 該庫接著協助將數據寫入新的 CSV 檔案。如果您想閱讀 CSV 檔案而不是使用 Microsoft Excel,您可以使用記事本。 IronXL 還支援使用Save方法儲存資料為多種檔案格式,如 XLS、CSV 和 XLSX。 或者可將工作簿轉換為資料流,然後將資料寫入所需的位置。

輸出 CSV 檔案

如何在C#中匯出檔案為CSV,圖7:輸出Excel檔案

輸出的 Excel 檔案

上面可以看到運行代碼範例的輸出結果。 螢幕截圖中新生成的 Excel 表格將字串陣列中的每個資料項目獨立添加。

若要了解更多有關使用 IronXL 將數據匯出為 CSV 的資訊,請參閱此逐步教程

5.0 結論

最受歡迎的 Excel 附加元件之一是IronXL。 它不依賴於任何其他外部庫。 它是自包含的,不需要安裝 Microsoft Excel。 它通過多個管道運行。

IronXL 提供一個完整的解決方案,用於所有以程式方式執行的 Microsoft Excel 文件相關任務。 可以執行計算、排序字串或數字、修剪、添加、定位和替換、合併和取消合併、儲存檔案等等。 除了檢查試算表數據,您還可以定義儲存格數據類型。 它讓您能夠讀取和寫入檔案,使處理 Excel 數據更加容易。

IronXL 提供免費試用授權,讓用戶有機會免費嘗試其所有主要功能。

IronXL 可在推出時以 $749 價格獲得。 如果用戶希望獲得軟體更新和幫助,他們也可以選擇支付一年訂閱費用。 IronXL提供無限重新分發保護,需支付額外費用。 要獲取更準確的價格資訊,請造訪 IronXL 的許可頁面

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