如何使用 C# 將 Datatable 轉換為 CSV

This article was translated from English: Does it need improvement?
Translated
View the article in English

您可以使用 IronXL 將現有的數據表導出為 CSV,並僅需幾個步驟即可完成轉換。本文旨在向您展示一個快速示例。


第一步

1. 添加 IronXL 免費版

您需要先安裝 IronXL,然後才能在應用程式中使用它。幸運的是,他們提供了多種將 IronXL 安裝到您的專案中的選項。

通過以下連結從他們的網站下載: https://ironsoftware.com/csharp/excel/docs/

  • 在 Visual Studio 中選擇專案選單
  • 點擊管理 NuGet 套件
  • 搜尋 IronXL.Excel
  • 點擊安裝
Install-Package IronXL.Excel
IronXL.Excel NuGet 套件
圖 1 - IronXL.Excel NuGet 套件

如何操作教程

2. 建立並導出 Datatable 為 CSV

現在您已準備就緒。

首先導入 IronXL 命名空間

using IronXL;
using IronXL;
Imports IronXL
VB   C#

然後,添加以下代碼:

/**
Save a datatable to CSV
anchor-create-and-export-datatable-to-csv
**/
private void button6_Click(object sender, EventArgs e)
{
    DataTable table = new DataTable();
    table.Columns.Add("Example_DataSet", typeof(string));

    table.Rows.Add("0");
    table.Rows.Add("1");
    table.Rows.Add("2");
    table.Rows.Add("3");
    table.Rows.Add("1");
    table.Rows.Add("2");
    table.Rows.Add("3");

    WorkBook wb = WorkBook.Create(ExcelFileFormat.XLS);
    wb.Metadata.Author = "OJ";
    WorkSheet ws = wb.DefaultWorkSheet;

    int rowCount = 1;
    foreach (DataRow row in table.Rows)
    {

        ws ["A" + (rowCount)].Value = row [0].ToString();

        rowCount++;
    }

    wb.SaveAsCsv("Save_DataTable_CSV.csv", ";"); // Saved as : Save_DataTable_CSV.Sheet1.csv
}
/**
Save a datatable to CSV
anchor-create-and-export-datatable-to-csv
**/
private void button6_Click(object sender, EventArgs e)
{
    DataTable table = new DataTable();
    table.Columns.Add("Example_DataSet", typeof(string));

    table.Rows.Add("0");
    table.Rows.Add("1");
    table.Rows.Add("2");
    table.Rows.Add("3");
    table.Rows.Add("1");
    table.Rows.Add("2");
    table.Rows.Add("3");

    WorkBook wb = WorkBook.Create(ExcelFileFormat.XLS);
    wb.Metadata.Author = "OJ";
    WorkSheet ws = wb.DefaultWorkSheet;

    int rowCount = 1;
    foreach (DataRow row in table.Rows)
    {

        ws ["A" + (rowCount)].Value = row [0].ToString();

        rowCount++;
    }

    wb.SaveAsCsv("Save_DataTable_CSV.csv", ";"); // Saved as : Save_DataTable_CSV.Sheet1.csv
}
'''
'''Save a datatable to CSV
'''anchor-create-and-export-datatable-to-csv
'''*
Private Sub button6_Click(ByVal sender As Object, ByVal e As EventArgs)
	Dim table As New DataTable()
	table.Columns.Add("Example_DataSet", GetType(String))

	table.Rows.Add("0")
	table.Rows.Add("1")
	table.Rows.Add("2")
	table.Rows.Add("3")
	table.Rows.Add("1")
	table.Rows.Add("2")
	table.Rows.Add("3")

	Dim wb As WorkBook = WorkBook.Create(ExcelFileFormat.XLS)
	wb.Metadata.Author = "OJ"
	Dim ws As WorkSheet = wb.DefaultWorkSheet

	Dim rowCount As Integer = 1
	For Each row As DataRow In table.Rows

		ws ("A" & (rowCount)).Value = row (0).ToString()

		rowCount += 1
	Next row

	wb.SaveAsCsv("Save_DataTable_CSV.csv", ";") ' Saved as : Save_DataTable_CSV.Sheet1.csv
End Sub
VB   C#

上述程式碼會創建一個資料表,然後指定「OJ」作為所有者/創建者來創建新工作簿。接著,使用 foreach 迴圈將資料表中的數據插入到 Excel 工作表中。最後使用 SaveAsCsv 方法將資料表匯出到 CSV。

輸出 Excel 工作表如下:

資料表輸出至CSV
圖2 - 資料表輸出至CSV

資料庫快速訪問

IronXL API 參考文件

Learn more and share how to merge, unmerge, and work with cells in Excel spreadsheets using the handy IronXL API 參考文件.

IronXL API 參考文件