跳過到頁腳內容
使用 IRONXL

C# 將 DataTable 高速導出到 Excel 的方法

在處理電子表格時,Microsoft Excel應用程式是一個受歡迎的電子表格工具,專為以表格格式管理大量數據而設計。 它提供強大的功能,如複雜的計算、通過圖表和圖形進行的數據可視化、樞紐分析表,以及通過應用程序的Visual Basic (VBA) 進行自動化支持。 其強大的數據分析和可視化工具使得Excel在各個行業中成為領先的選擇。 使用Excel,您可以輕鬆創建、編輯、查看和共享文件,簡化您的數據管理任務。

在C#中,ADO.NET庫中的DataTable物件表示程序中的表格式數據,就像Excel工作表一樣。 它將數據組織成行和列,允許輕鬆操作和導出。 與Excel類似,DataTable支持過濾、排序和格式化選項,使其成為C#中管理數據範圍的首選工具。 然而,DataTable是在運行時創建的,當應用程式關閉時其數據會丟失,除非將其導出為更永久的格式,如Excel文件或CSV文件。

今天,我們將探索如何在C#中創建DataTable,並使用IronXL這個強大的.NET Excel庫將其數據導出到Excel文檔。

IronXL: 一個.NET Excel庫

IronXL 是一個C# .NET庫,簡化了創建Excel文件的過程。 使用IronXL,您可以創建新的電子表格、編輯現有的表格、使用Excel公式處理、為您的電子表格單元格設置樣式等。 其豐富的功能範圍使得程式化地處理Excel文件變得輕而易舉,更重要的是,IronXL無需Microsoft Office Interop即可運行。這意味著不需要安裝Microsoft Office或其他任何特殊依賴項。

使用IronXL,您可以以多種格式保存或導出數據,如XLS和XLSX、CSV數據和TSV、JSON、XML和HTML、二進制和字節數組。 它還擁有強大的工作簿安全功能,例如添加權限和密碼,並允許您編輯工作簿的元數據。

將數據從DataTable導出到Excel文件的步驟

先決條件

要在C#中使用IronXL將數據從DataTable導出到Excel文件,我們需要在本地計算机上安裝以下元件。 讓我們一一查看它們。

  1. Visual Studio - Visual Studio是C#程式設計的IDE,必須安裝。 您可以從Visual Studio網站下載並安裝最新版本。
  • 一旦設置了IDE,需要創建一個控制台應用程式/Windows表單,這將有助於將DataTable導出為Excel。 以下截圖顯示如何創建項目。

創建項目

現在,選擇您的項目類型。 在我們的示例中,我們將創建一個控制台應用程式。

控制台應用程式

命名您的項目並選擇其將保存到的位置。

命名項目

最後,選擇您的 .NET Framework,然後點擊“創建”。

.NET Framework

在最後一張截圖中點擊創建後,創建了一個名為“DemoApp”的項目。

  1. IronXL庫 - 必須在Visual Studio項目中下載並安裝IronXL庫。 有多種方法可以做到這一點。
  • 使用Visual Studio - 它提供了NuGet包管理器來安裝IronXL。 您可以通過工具菜單或解決方案資源管理器訪問它。 以下截圖有助於安裝IronXL。 首先,導航到頂部欄的“工具”,或在您的解決方案資源管理器中右鍵單擊。

解決方案資源管理器

工具 - NuGet包管理器

轉到為方案管理NuGet包,並搜索IronXL。 然後,您只需要按“安裝”,IronXL庫將被添加到您的項目中。

瀏覽IronXL

  • 開發者命令提示符 - 從Visual Studio工具菜單或Visual Studio文件夾中打開開發者命令提示符。 輸入以下命令以下載並安裝IronXL到您的項目:

     PM > Install-Package IronXL.Excel
     PM > Install-Package IronXL.Excel
    SHELL
  1. 添加必要的命名空間 - 要創建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
    $vbLabelText   $csharpLabel

一旦滿足所有先決條件,就該將數據從DataTable導出到Excel表格了。

在C&#中創建DataTable

以下代碼創建了一個帶有兩個列標題和多行的新數據表:

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

首先,我們創建一個新的DataTable,稱為“dt”。 然後,使用Columns.Add,我們可以按名稱向數據表添加指定數量的列; 在我們的示例中,我們有兩列,分別稱為“動物”和“聲音”。 然後,我們使用Rows.Add添加新行,將每行的內容放在括號內。 內容被逗號分隔,通過列分隔每個字符串。

使用IronXL在C&#中創建Excel文件

從零開始使用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
$vbLabelText   $csharpLabel

使用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
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
$vbLabelText   $csharpLabel

在上面的代碼中,Excel表格列“A1”被賦值為DataTable列1的索引0的值,下一個Excel列“B1”值被賦值為DataTable列2的索引1的值。 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
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
$vbLabelText   $csharpLabel

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")
$vbLabelText   $csharpLabel

該文件還可以保存為其他格式,例如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")
$vbLabelText   $csharpLabel

您也可以用自定義分隔符保存它。

輸出

文件的最終輸出如下所示:

DataTable到Excel輸出

總結

在本文中,我們演示了如何在C#中創建一個具有列和行的DataTable,然後使用IronXL生成一個帶有默認工作表的Excel工作簿。 然後,我們成功將DataTable中的表格式數據導出到Excel文件中並以.xlsx格式保存。

IronXL 是一個用戶友好的C#庫,使開發人員可以無縫地使用Excel文件,即使沒有安裝MS 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 的全面文檔,包括指南和示例,可以在他們的官方網站找到。

Jordi Bardia
軟體工程師
Jordi 在 Python、C# 和 C++ 上最得心應手,當他不在 Iron Software 展現技術時,便在做遊戲編程。在分担产品测测试,产品开发和研究的责任时,Jordi 为持续的产品改进增值。他说这种多样化的经验使他受到挑战并保持参与, 而这也是他与 Iron Software 中工作一大乐趣。Jordi 在佛罗里达州迈阿密长大,曾在佛罗里达大学学习计算机科学和统计学。