如何在 .NET Core 中導出到 CSV
1.0 引言
本文將使用最知名的函式庫之一IronXL ,來比較和比較 .NET 技術以程式設計方式與 Microsoft Excel 文件互動的不同方法。 它還將建立一個用於讀取、寫入和匯出 Excel 電子表格到 CSV 檔案的環境。
2.0 IronXL
IronXL for .NET 是一個 C# Excel 函式庫,可用於讀取 Microsoft Excel 文件並將其轉換為 CSV 檔案。 IronXL 是一個獨立的 .NET 軟體庫,無需安裝 Microsoft Office 或 Microsoft.Office.Interop.Excel 即可使用。 它可以讀取多種電子表格格式。
透過 IronXL 簡單易用的 C# API,可以在 .NET 環境中輕鬆讀取、編輯和產生 Excel 電子表格。 IronXL 完全支援 Xamarin、Linux、macOS、Azure、.NET Core 和 .NET Framework。
2.1 IronXL 庫功能
- IronXL 是最優秀的 C# Excel 試算表庫之一,它同時適用於 .NET Core 和 .NET Framework。
- IronXL 支援幾乎所有 .NET Framework,包括控制台、Windows 窗體和 Web 應用程式。
- IronXL 與 Windows、macOS 和 Linux 皆相容。
- 使用 IronXL 可以快速輕鬆地存取 Excel 檔案。 IronXL 可以讀取 XLSX 檔案、CSV 檔案、XLS、XSLT、TSV、XLSM 等 Excel 檔案格式。 眾多功能中包含匯入、更新和匯出資料集和資料表的功能。
- IronXL 可以產生 Excel 電子表格的計算結果。
- 對於 Excel 列,IronXL 支援多種資料類型,例如文字、整數、日期、貨幣、公式和百分比。 IronXL 支援日期、貨幣、百分比、文字、數字、公式和其他 Excel 欄位資料類型。
3.0 建立 .NET Core 6 項目
在本通訊的後續章節中,您將看到使用 IronXL 庫建立 CSV 檔案是多麼容易。
步驟 1:新建一個專案以產生 CSV 檔案。
開啟Visual Studio ,從"檔案"選單中選擇"新建專案"。
從隨後出現的對話方塊中選擇"控制台應用程式".NET 專案模板,然後按一下"下一步"。
如何在 .NET Core 中匯出為 CSV 文件,圖 1:在 Visual Studio 中建立一個新的控制台應用程式 在 Visual Studio 中建立一個新的控制台應用程式
"項目名稱"可以隨意填寫。 在"位置"部分提供新項目的位置後,按一下"下一步"按鈕繼續。
如何在 .NET Core 中匯出為 CSV 文件,圖 2:配置新項目 配置新項目
可以使用"框架"下拉式功能表選擇 .NET Framework。 在這種情況下,長期支援的 .NET 版本是 6.0。接下來,點擊"創建"按鈕。
如何在 .NET Core 中匯出為 CSV 文件,圖 3:.NET 目標框架選擇 .NET 目標框架選擇
安裝 IronXL 庫,因為後續解析需要用到它。 在套件管理員控制台中輸入以下指令即可完成:
Install-Package IronXL.Excel
如何在 .NET Core 中匯出為 CSV 文件,圖 4:安裝 IronXL 套件 安裝 IronXL 軟體包
另一種方法是使用 NuGet 套件管理器搜尋"IronXL"套件。 在"瀏覽"標籤中,在搜尋框中輸入"IronXL"以搜尋 IronXL 庫。 從與 IronXL 相關的所有 NuGet 套件清單中,選擇要下載的套件。
如何在 .NET Core 中匯出為 CSV 檔案?圖 5:在 NuGet 套件管理器 UI 中搜尋並安裝 IronXL 套件 在 NuGet 套件管理器 UI 中搜尋並安裝 IronXL 套件。
4.0 將資料匯出到 CSV 文件
使用 IronXL,建立 CSV 檔案的資料表既簡單又快速。 它便於將資料寫入新的 CSV 檔案。第一步是包含 IronXL 命名空間,如下面的程式碼截圖所示。 IronXL 實作之後,就可以在程式碼中使用它的類別和方法。
如何在 .NET Core 中匯出為 CSV 文件,圖 6:包含 IronXL 命名空間 包含 IronXL 命名空間
IronXL可用於建立 Excel 文件,隨後將其轉換為WorkBook物件。 在它們成為 WorkBook 類別的物件之後,可以透過多種方式對它們進行操作。 透過將 DataTable 轉換為 Excel 工作表,下面的範例原始程式碼會建立一個 Excel 檔案。
using IronXL;
using System.Data;
class Program
{
static void Main(string[] args)
{
ExportToExcel("test.csv");
}
// Method to export a DataTable to an Excel sheet which is then saved as a CSV file
public static void ExportToExcel(string filepath)
{
// Create a DataTable and add columns & rows
DataTable table = new DataTable();
table.Columns.Add("DataSet_Animals", typeof(string));
table.Rows.Add("Lion");
table.Rows.Add("Tiger");
table.Rows.Add("Leopard");
table.Rows.Add("Cheetah");
table.Rows.Add("Hyenas");
// Create a new workbook and get the default worksheet
var workbook = WorkBook.Create(ExcelFileFormat.XLS);
var worksheet = workbook.DefaultWorkSheet;
// Add table data to worksheet
int rowCount = 1;
foreach (DataRow row in table.Rows)
{
worksheet["A" + rowCount].Value = row[0].ToString();
rowCount++;
}
// Save worksheet data to a CSV file
workbook.SaveAsCsv(filepath, ";");
// Optionally convert workbook to a stream, useful for web applications
var stream = workbook.ToStream();
}
}
using IronXL;
using System.Data;
class Program
{
static void Main(string[] args)
{
ExportToExcel("test.csv");
}
// Method to export a DataTable to an Excel sheet which is then saved as a CSV file
public static void ExportToExcel(string filepath)
{
// Create a DataTable and add columns & rows
DataTable table = new DataTable();
table.Columns.Add("DataSet_Animals", typeof(string));
table.Rows.Add("Lion");
table.Rows.Add("Tiger");
table.Rows.Add("Leopard");
table.Rows.Add("Cheetah");
table.Rows.Add("Hyenas");
// Create a new workbook and get the default worksheet
var workbook = WorkBook.Create(ExcelFileFormat.XLS);
var worksheet = workbook.DefaultWorkSheet;
// Add table data to worksheet
int rowCount = 1;
foreach (DataRow row in table.Rows)
{
worksheet["A" + rowCount].Value = row[0].ToString();
rowCount++;
}
// Save worksheet data to a CSV file
workbook.SaveAsCsv(filepath, ";");
// Optionally convert workbook to a stream, useful for web applications
var stream = workbook.ToStream();
}
}
Imports IronXL
Imports System.Data
Friend Class Program
Shared Sub Main(ByVal args() As String)
ExportToExcel("test.csv")
End Sub
' Method to export a DataTable to an Excel sheet which is then saved as a CSV file
Public Shared Sub ExportToExcel(ByVal filepath As String)
' Create a DataTable and add columns & rows
Dim table As New DataTable()
table.Columns.Add("DataSet_Animals", GetType(String))
table.Rows.Add("Lion")
table.Rows.Add("Tiger")
table.Rows.Add("Leopard")
table.Rows.Add("Cheetah")
table.Rows.Add("Hyenas")
' Create a new workbook and get the default worksheet
Dim workbook = WorkBook.Create(ExcelFileFormat.XLS)
Dim worksheet = workbook.DefaultWorkSheet
' Add table data to worksheet
Dim rowCount As Integer = 1
For Each row As DataRow In table.Rows
worksheet("A" & rowCount).Value = row(0).ToString()
rowCount += 1
Next row
' Save worksheet data to a CSV file
workbook.SaveAsCsv(filepath, ";")
' Optionally convert workbook to a stream, useful for web applications
Dim stream = workbook.ToStream()
End Sub
End Class
上述 CSV 範例展示如何將 DataTable 匯出到 CSV 檔案。在建立 DataTable 物件(即建立列標題)後,在建立第一列後,逐行新增資料。將行和列加入到 DataTable 物件後,即可建構 WorkBook 物件。 WorkBook 物件用於向 Excel 表格新增數據,然後可以將其儲存到其他位置。 下一步是初始化WorkSheet對象,該對象連結到工作簿對象。
在將值新增至工作表之前,使用循環從中讀取每個值。 SaveAsCsv函數用於將資料儲存到 CSV 檔案中,前提是所有資料都已放入工作表中,並使用檔案名稱作為參數。 如果需要,可以使用分隔符號作為可選參數。 該庫隨後會協助將資料寫入 CSV 檔案。除了 Microsoft Excel 之外,還可以使用記事本來讀取 CSV 檔案。 此外,方法Save用於將內容儲存為給定的檔案格式。
如何在 .NET Core 中匯出為 CSV 文件,圖 7:輸出 Excel 文件 test.csv 輸出檔:Excel 文件 test.csv
以上是運行程式碼範例的輸出結果。 截圖中顯示的是資料表中每一個資訊分別加入到新建立的 Excel 表格中。 或者,它也可以作為 Web 應用程式的一部分轉換為流,以傳回可以從客戶端下載的檔案。
有關將資料從 DataTable 匯出到 Excel 的更多信息,請查看此教學頁面。
若要了解如何將資料匯出至 Excel,請參閱此逐步教學。
5.0 結論
IronXL是使用最廣泛的Excel實用程式之一。 它不依賴任何其他外部庫。 它是獨立運行的,無需安裝 Microsoft Excel。 此外,它還透過多種管道發揮作用。
IronXL為所有透過程式實現的 Microsoft Excel 文件相關操作提供全面的解決方案。 計算公式、對字串或數字進行排序、修剪、追加、尋找和替換、合併和取消合併、保存檔案等等,這些操作都是可能的。 除了驗證電子表格資料外,您還可以設定儲存格資料類型。它簡化了 Excel 資料的處理,並允許您讀取和寫入檔案。
IronXL 提供免費試用許可證,用戶可以免費試用和測試其所有令人驚嘆的功能。
IronXL 在發佈時適用於 $799。 用戶也可以選擇支付一年的訂閱費,以獲得更新和產品支援。 IronXL 提供無限制再分送的安全保障,但需額外收費。 如需查詢更精確的價格資料,請造訪 IronXL 的授權頁面。
常見問題解答
我怎樣可以使用 .NET Core 匯出資料到 CSV 檔?
您可以在 .NET Core 應用程式中使用 IronXL 匯出資料到 CSV 檔。首先在 Visual Studio 中設置一個新的 .NET Core 專案,通過 NuGet 安裝 IronXL,並使用其 WorkBook 和 WorkSheet 對象,以 SaveAsCsv 方法將您的資料儲存為 CSV 檔。
是否可以不使用 Microsoft Office 讀取和寫入 Excel 檔?
可以,IronXL 允許您讀取和寫入 Excel 檔而無需使用 Microsoft Office 或 Microsoft.Office.Interop.Excel。它為 .NET 應用程式內的 Excel 試算表管理提供了一個獨立解決方案。
在 .NET Core 中使用 IronXL 進行 CSV 匯出有哪些好處?
IronXL 提供了一種簡單且有效的方式來處理 .NET Core 中的 CSV 匯出。它支持多平台,無需 Microsoft Office,並提供如公式計算、資料排序和大數據集處理等功能。
如何在 .NET Core 專案中安裝 IronXL?
要在 .NET Core 專案中安裝 IronXL,您可以使用封裝管理員主控台,指令為 Install-Package IronXL,或使用 Visual Studio 中的 NuGet 封裝管理員 UI 搜索並安裝 'IronXL'。
我可以在 Windows 以外的平台上使用 IronXL 嗎?
可以,IronXL 兼容多平台,包括 Windows、macOS 和 Linux。它還支持 Xamarin、Azure、.NET Core 和 .NET Framework 應用程式,使其在各種環境下都具備通用性。
如何使用 IronXL 在 Excel 中處理大型數據集?
IronXL 通過其強大的 C# API 有效地處理 Excel 中的大型數據集。它允許快速的資料操作,支持各種 Excel 格式,並提供如排序和驗證數據等功能。
IronXL 是否支持 Excel 公式計算?
是的,IronXL 支持 Excel 公式計算。您可以使用 IronXL 的 API 在您的試算表資料上執行複雜計算,類似於在 Excel 中的操作。
IronXL 是否提供授權選項?
IronXL 提供了免費試用授權以測試其功能,還有多種授權選擇可用於完整功能。這為開發者提供了靈活的選擇,以滿足他們的需求。


