C# 將 DataTable 高速導出到 Excel 的方法
在使用電子表格時,Microsoft Excel 應用程式是一款流行的電子表格工具,旨在以表格格式管理大型資料集。 它提供了強大的功能,例如複雜的計算、透過圖表和圖形進行資料視覺化、資料透視表,以及透過 Visual Basic for Applications (VBA) 實現自動化。 憑藉其強大的資料分析和視覺化工具,Excel 已成為各行各業的首選工具。 使用 Excel,您可以輕鬆建立、編輯、檢視和分享文件,從而簡化您的資料管理任務。
在 C# 中,ADO.NET 庫中的 DataTable 物件表示程式中的表格資料,很像 Excel 工作表。 它將資料整理成行和列,以便於操作和匯出。 與 Excel 一樣,DataTable 支援篩選、排序和格式化選項,使其成為 C# 中管理資料範圍的首選工具。 但是,DataTable 是在運行時創建的,除非匯出為更永久的格式(例如 Excel 檔案或 CSV 檔案),否則在關閉應用程式時其資料將會遺失。
今天,我們將探討如何在 C# 中建立 DataTable,並使用功能強大的 .NET Excel 庫 IronXL 將其資料匯出到 Excel 文件。
IronXL:一個 .NET Excel 函式庫
IronXL是一個 C# .NET 函式庫,它簡化了建立 Excel 檔案的過程。 使用 IronXL,您可以建立新的電子表格、編輯現有的電子表格、使用 Excel 公式、設定電子表格儲存格的樣式等等。 IronXL 功能豐富,讓以程式設計方式處理 Excel 檔案變得輕而易舉,最重要的是,它無需 Microsoft Office Interop 即可運作。這意味著無需安裝 Microsoft Office 或任何其他特殊依賴項。
使用 IronXL,您可以將資料儲存或匯出為不同的格式,例如 XLS 和 XLSX、CSV 資料和 TSV、JSON、XML 和 HTML、二進位和位元組數組。 它還具有強大的工作簿安全功能,例如新增權限和密碼,並允許您編輯工作簿元資料。
將資料表資料匯出到 Excel 檔案的步驟
先決條件
要在 C# 中使用 IronXL 將資料從 DataTable 匯出到 Excel 文件,我們需要在本機電腦上安裝下列元件。 讓我們逐一來看。
-
Visual Studio - Visual Studio 是 C# 程式設計的 IDE,必須安裝。 您可以從Visual Studio 網站下載並安裝最新版本。
-
IronXL 庫- 必須下載 IronXL 庫並安裝到 Visual Studio 專案中。 有很多方法可以做到這一點。
*使用 Visual Studio - 它提供了 NuGet 套件管理器來安裝 IronXL。 您可以透過"工具"功能表或"解決方案資源管理器"來存取它。 以下截圖有助於安裝 IronXL。 首先,導覽至頂部欄中的"工具",或在解決方案資源管理器中按一下滑鼠右鍵。
前往"管理解決方案的 NuGet 套件",然後搜尋 IronXL。 然後,您只需按下"安裝"按鈕,IronXL 庫就會新增到您的專案中。
*開發人員命令提示字元- 從 Visual Studio 工具功能表或 Visual Studio 資料夾開啟開發人員命令提示字元。 輸入以下命令,即可在您的專案中下載並安裝 IronXL:
PM > Install-Package IronXL.ExcelPM > Install-Package IronXL.ExcelSHELL*直接從 NuGet 套件管理員取得 - 存取此 URLhttps://www.nuget.org/packages/ironxl.excel/下載 IronXL。
3.新增必要的命名空間- 要建立 DataTable 並使用 IronXL,兩者都應該在 Program.cs 檔案的頂部引用。
using IronXL; // Add reference to the IronXL library
using System.Data; // Add reference to System.Data for DataTable
using IronXL; // Add reference to the IronXL library
using System.Data; // Add reference to System.Data for DataTable
Imports IronXL ' Add reference to the IronXL library
Imports System.Data ' Add reference to System.Data for DataTable
所有先決條件滿足後,就可以將資料從資料表匯出到 Excel 表格了。
Create a DataTable in C#
以下程式碼會建立一個包含兩個列標題和多行的新資料表:
// Create a new DataTable object
DataTable dt = new DataTable();
// Add column names to the DataTable
dt.Columns.Add("Animal");
dt.Columns.Add("Sound");
// Add rows representing different animals and their sounds
dt.Rows.Add("Lion", "Roars");
dt.Rows.Add("Dog", "Barks");
dt.Rows.Add("Cat", "Meows");
dt.Rows.Add("Goat", "Bleats");
dt.Rows.Add("Wolf", "Howls");
dt.Rows.Add("Cheetah", "Purrs");
// Create a new DataTable object
DataTable dt = new DataTable();
// Add column names to the DataTable
dt.Columns.Add("Animal");
dt.Columns.Add("Sound");
// Add rows representing different animals and their sounds
dt.Rows.Add("Lion", "Roars");
dt.Rows.Add("Dog", "Barks");
dt.Rows.Add("Cat", "Meows");
dt.Rows.Add("Goat", "Bleats");
dt.Rows.Add("Wolf", "Howls");
dt.Rows.Add("Cheetah", "Purrs");
' Create a new DataTable object
Dim dt As New DataTable()
' Add column names to the DataTable
dt.Columns.Add("Animal")
dt.Columns.Add("Sound")
' Add rows representing different animals and their sounds
dt.Rows.Add("Lion", "Roars")
dt.Rows.Add("Dog", "Barks")
dt.Rows.Add("Cat", "Meows")
dt.Rows.Add("Goat", "Bleats")
dt.Rows.Add("Wolf", "Howls")
dt.Rows.Add("Cheetah", "Purrs")
首先,我們建立一個名為"dt"的新資料表。 然後,使用Columns.Add ,我們可以按名稱向資料表中新增指定數量的欄位; 在我們的範例中,我們有兩列,分別名為"動物"和"聲音"。 然後我們使用Rows.Add新增一行,並將每一行的內容放在括號內。 內容以逗號分隔,每列分隔一個字串。
Create Excel File using IronXL in C#
使用 IronXL 從頭開始建立 Excel 檔案類型時,這是一個兩步驟過程,在 C# 中實現起來非常容易。 IronXL 首先建立 Excel 工作簿,然後協助新增工作表。 以下範例程式碼示範如何建立包含工作表的工作簿:
// Create a new workbook in XLSX format
WorkBook wb = WorkBook.Create(ExcelFileFormat.XLSX);
// Reference to the default worksheet in the workbook
WorkSheet ws = wb.DefaultWorkSheet;
// Create a new workbook in XLSX format
WorkBook wb = WorkBook.Create(ExcelFileFormat.XLSX);
// Reference to the default worksheet in the workbook
WorkSheet ws = wb.DefaultWorkSheet;
' Create a new workbook in XLSX format
Dim wb As WorkBook = WorkBook.Create(ExcelFileFormat.XLSX)
' Reference to the default worksheet in the workbook
Dim ws As WorkSheet = wb.DefaultWorkSheet
使用 IronXL 將資料表資料匯出到 Excel 工作表
使用 IronXL 在工作表中新增值可以簡化整個過程,因為它只需編寫最少的程式碼即可完成此任務。 在這裡我們將學習如何將上一節中建立的資料表中的資料匯出到新建立的 Excel 工作表。 讓我們一步一步來看程式碼。
在 Excel 工作表中新增列標題
// Assign DataTable column names to the first row of the Excel worksheet
ws["A1"].Value = dt.Columns[0].ToString();
ws["B1"].Value = dt.Columns[1].ToString();
// Start adding data from the second row
int rowCount = 2;
// Assign DataTable column names to the first row of the Excel worksheet
ws["A1"].Value = dt.Columns[0].ToString();
ws["B1"].Value = dt.Columns[1].ToString();
// Start adding data from the second row
int rowCount = 2;
' Assign DataTable column names to the first row of the Excel worksheet
ws("A1").Value = dt.Columns(0).ToString()
ws("B1").Value = dt.Columns(1).ToString()
' Start adding data from the second row
Dim rowCount As Integer = 2
在上面的程式碼中,Excel 工作表的"A1"列被賦值為資料表第 1 列索引為 0 的值,Excel 工作表的下一個"B1"列被賦值為資料表第 2 列索引為 1 的值。 rowCount變數的值設定為 2,表示從 DataTable 的第二行開始讀取行; 這樣可以確保我們不會將標題行計算在內。
在 Excel 工作表中新增一行
以下程式碼將從資料表中讀取每一行,並將其指派給 Excel 檔案中的新行:
// Iterate through each row in the DataTable and add to Excel worksheet
foreach (DataRow row in dt.Rows)
{
ws["A" + (rowCount)].Value = row[0].ToString();
ws["B" + (rowCount)].Value = row[1].ToString();
rowCount++;
}
// Iterate through each row in the DataTable and add to Excel worksheet
foreach (DataRow row in dt.Rows)
{
ws["A" + (rowCount)].Value = row[0].ToString();
ws["B" + (rowCount)].Value = row[1].ToString();
rowCount++;
}
' Iterate through each row in the DataTable and add to Excel worksheet
For Each row As DataRow In dt.Rows
ws("A" & (rowCount)).Value = row(0).ToString()
ws("B" & (rowCount)).Value = row(1).ToString()
rowCount += 1
Next row
在上述程式碼中, rowCount變數每次都會遞增,以便從DataTable 讀取新行到 Excel工作表單元格中。
儲存 Excel 文件
最後,使用SaveAs()方法儲存 Excel 檔案。
// Save the workbook to a file
wb.SaveAs("DataTable_to_Excel_IronXL.xlsx");
// Save the workbook to a file
wb.SaveAs("DataTable_to_Excel_IronXL.xlsx");
' Save the workbook to a file
wb.SaveAs("DataTable_to_Excel_IronXL.xlsx")
檔案也可以儲存為其他格式,例如 CSV(逗號分隔值)、JSON、XML。
// Save the workbook in different file formats
wb.SaveAsCsv("DataTable_to_Excel_IronXL.csv");
wb.SaveAsJson("DataTable_to_Excel_IronXL.json");
wb.SaveAsXml("DataTable_to_Excel_IronXL.xml");
// Save the workbook in different file formats
wb.SaveAsCsv("DataTable_to_Excel_IronXL.csv");
wb.SaveAsJson("DataTable_to_Excel_IronXL.json");
wb.SaveAsXml("DataTable_to_Excel_IronXL.xml");
' Save the workbook in different file formats
wb.SaveAsCsv("DataTable_to_Excel_IronXL.csv")
wb.SaveAsJson("DataTable_to_Excel_IronXL.json")
wb.SaveAsXml("DataTable_to_Excel_IronXL.xml")
您也可以使用自訂分隔符號儲存。
輸出
文件的最終輸出結果如下所示:
摘要
在本文中,我們示範如何在 C# 中建立具有列和行的 DataTable,然後使用 IronXL 產生具有預設工作表的 Excel 工作簿。 然後,我們成功地將資料表中的表格資料匯出到 Excel 檔案中,並將其儲存為 .xlsx 格式。
IronXL是一個使用者友好的 C# 庫,即使沒有安裝 MS Excel,開發人員也可以無縫地處理 Excel 檔案。 它支援從各種格式(例如 CSV 檔案)匯出資料,以便進行進一步的處理和計算。
要了解有關 IronXL 及其強大功能集的更多信息,請務必查看其詳盡的文檔。 想親自體驗一下嗎? IronXL 還提供免費試用版,可完全存取所有功能,因此您可以立即開始探索這個強大的庫如何改進您的電子表格項目!
常見問題解答
如何使用 C# 快速將 DataTable 匯出到 Excel?
您可以使用 IronXL .NET Excel 庫來高效地將 DataTable 匯出到 Excel。這個庫允許您創建和操作 Excel 文件,而無需用到 Microsoft Office Interop。
匯出 DataTable 到 Excel 在 C# 中需要哪些工具?
要使用 IronXL 將 DataTable 匯出到 Excel,您需要安裝 Visual Studio 並使用 NuGet 套件管理器將 IronXL 庫添加到您的項目。
如何在 C# 應用程式中創建 DataTable?
在 C# 中,您可以實例化一個新的 DataTable 對象來創建 DataTable。然後可以使用 Columns.Add 添加列,並使用 Rows.Add 填充行。
如何將 DataTable 的數據匯出到 Excel 文件中?
要將數據從 DataTable 匯出到 Excel 文件中,請遍歷每個 DataTable 行,並使用 IronXL 功能將值分配給相應的 Excel 單元格。
我可以使用 .NET 庫將 Excel 文件保存為不同格式嗎?
是的,使用 IronXL,您可以將 Excel 文件保存為包括 XLSX、CSV、JSON 和 XML 在內的多種格式,甚至可以指定自定義分隔符。
我需要 Microsoft Office 來管理具有 C# 庫的 Excel 文件嗎?
不需要安裝 Microsoft Office。IronXL 使您能以編程方式管理 Excel 文件,而不依賴於 Microsoft Office Interop。
.NET Excel 庫有哪些優勢?
IronXL 提供創建和編輯 Excel 文件、應用公式、設置樣式單元格以及匯出數據為多個格式等多項優勢。它還支持如密碼保護等安全功能。
以程式方式保存 Excel 活頁簿需要哪些步驟?
要使用 IronXL 保存 Excel 活頁簿,請使用 SaveAs 方法,選擇所需的文件格式,如 XLSX、CSV 或 JSON。
有沒有可用的 .NET Excel 庫試用版?
有,IronXL 提供了一個免費試用版,讓您可以全面訪問其功能,允許開發人員在提交之前測試其能力。
在哪裡可以找到使用 .NET Excel 庫的詳細文檔?
IronXL 的全面文檔,包括指南和示例,可以在他們的官方網站找到。


