
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並使用IronXL這個強大的.NET Excel程式庫將其資料匯出到Excel文件中。
IronXL: A .NET Excel Library
IronXL 是一個C# .NET程式庫,簡化了建立Excel文件的過程。 通過IronXL,您可以建立新的試算表、編輯現有試算表、處理Excel公式、為試算表的單元格設置樣式等。 其豐富的功能範圍使以程式方式處理Excel文件變得輕而易舉,最重要的是,IronXL可以在不需Microsoft Office互操作性的情況下運行。這意味著無需安裝Microsoft Office或其他特殊依賴項。
使用IronXL,您可以以不同格式保存或匯出資料,如XLS和XLSX、CSV資料和TSV、JSON、XML和HTML、二進制和字節陣列。 它還擁有強大的活頁簿安全功能,例如新增權限和密碼,並允許您編輯活頁簿的元資料。
將DataTable中的資料匯出到Excel文件的步驟
先決條件
要使用IronXL將DataTable的資料匯出到C#中的Excel文件,需在本地計算機上安裝以下組件。 讓我們一個一個來看看它們。
-
Visual Studio - Visual Studio是C#編程的IDE,必須安裝。 您可以從Visual Studio網站下載並安裝最新版本。
-
一旦設置好IDE,需要建立一個控制台應用程式/Windows表單,這將有助於將DataTable匯出到Excel。 以下螢幕截圖顯示了如何建立專案。

現在,選擇您的專案型別。 在我們的例子中,我們將建立一個控制台應用程式。

命名您的專案並選擇將其保存的位置。

最後,選擇您的.NET Framework,然後點擊"建立"。

在最後一個螢幕截圖中點擊建立後,名為**"DemoApp"**的專案已建立。
-
-
IronXL程式庫 - 必須在Visual Studio專案中下載並安裝IronXL程式庫。 這有多種方法可以做到。
-
使用Visual Studio - 它提供NuGet Package Manager來安裝IronXL。 您可以通過工具選單或解決方案資源管理器存取它。 以下螢幕截圖有助於安裝IronXL。 首先,導航到頂部工具欄中的"工具",或在您的解決方案資源管理器中右鍵單擊。


轉到管理NuGet包以解決方案,並搜索IronXL。 然後,您只需按"安裝",IronXL程式庫就會新增到您的專案中。

-
開發者命令提示字元 - 從Visual Studio工具選單或從Visual Studio文件夾中打開開發者命令提示字元。 輸入以下命令以在您的專案中下載並安裝IronXL:
PM > Install-Package IronXL.ExcelSHELL -
直接從NuGet Package Manager - 瀏覽此URL https://www.nuget.org/packages/IronXL.Excel/ 以下載IronXL。
-
-
新增必要的命名空間 - 要建立DataTable並使用IronXL,兩者應該在Program.cs文件的頂部引用。
using IronXL; // Add reference to the IronXL library using System.Data; // Add reference to System.Data for DataTableImports IronXL ' Add reference to the IronXL library Imports System.Data ' Add reference to System.Data for DataTable
一旦所有先決條件都滿足,是時候將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
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"的新DataTable。 然後,使用Columns.Add,我們可以按名稱向資料表新增指定數量的列; 在我們的例子中,我們有兩列,名為"Animal"和"Sound"。 然後我們使用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
Dim wb As WorkBook = WorkBook.Create(ExcelFileFormat.XLSX)
' Reference to the default worksheet in the workbook
Dim ws As WorkSheet = wb.DefaultWorkSheet使用IronXL將資料從DataTable匯出到Excel工作表
利用IronXL將值新增到工作表簡化了整個過程,它能以最少的程式碼執行這項任務。 在這裡我們將學習如何將之前部分中建立的DataTable的資料匯出到新建立的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
Dim rowCount As Integer = 2在上述程式碼中,Excel表中的列"A1"被分配來自DataTable中索引0的列1的值,以及下一列"B1"被分配來自DataTable中索引1的列2的值。 rowCount 變數被設置為2,從DataTable中從第二行開始讀取行; 這確保我們不計算標題行。
向Excel工作表新增行
以下程式碼將讀取DataTable中每一行並將其分配到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
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")該文件也可以保存為其他格式,例如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")您還可以使用自定分隔符將其保存。
輸出
文件的最終輸出如下所示:

總結
在本文中,我們演示了如何在C#中建立具有列和行的DataTable,接著使用IronXL生成具有預設工作表的Excel活頁簿。 然後我們成功地將DataTable中的表格資料匯出到Excel文件中,並以.xlsx格式保存。
IronXL 是一個使用者友好的C#程式庫,允許開發人員無縫地操作Excel文件,即使未安裝MS Excel。 它支持將資料從多種格式(如CSV文件)匯出,以供進一步的操作和計算。
要了解有關IronXL及其強大功能集的更多資訊,請務必查看其詳細的文件。 想要親自試試看嗎? IronXL還提供免費試用,全面擁有所有功能,這樣您就可以立即開始探索這個強大的程式庫如何改進您的試算表專案!

Curtis Chau擁有Carleton大學的電腦科學學士學位,專精於前端開發,擁有Node.js、TypeScript、JavaScript和React的專業知識。Curtis熱衷於建立直觀且美觀的使用者介面,喜愛使用現代框架並建立結構良好、視覺吸引力的手冊。
相關文章



