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

查克尼思·賓
查克尼思·賓
2020年12月22日
已更新 2024年10月20日
分享:
This article was translated from English: Does it need improvement?
Translated
View the article in English

您可以使用 IronXL 將現有的資料表在幾個步驟中轉換為 CSV,從而將資料表導出為 CSV。 本文旨在向您快速示範此例。


第一步

1. 新增 IronXL 免費版本

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

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

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

如何操作教程

2. 創建並導出數據表至 CSV

现在您已经准备好了。

首先導入 IronXL 命名空間

using IronXL;
using IronXL;
Imports IronXL
$vbLabelText   $csharpLabel

然後,添加以下代碼:

/**
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
$vbLabelText   $csharpLabel

上述程式碼建立了一個數據表,然後創建一個新的工作簿,指定‘OJ’為其擁有者/創建者。 foreach 迴圈隨後將資料表中的資料插入 Excel 工作表中。 最後,使用SaveAsCsv方法將資料表匯出為csv。

輸出的Excel工作表如下所示:

資料表輸出至CSV
Figure 2 - Datatable output to 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 參考文件
Documentation related to 資料庫快速訪問
查克尼思·賓
軟體工程師
Chaknith 致力於 IronXL 和 IronBarcode。他在 C# 和 .NET 方面擁有豐富的專業知識,協助改進軟體並支持客戶。他從用戶互動中獲得的洞察力有助於提高產品、文檔和整體體驗。