跳過到頁腳內容
使用 IRONXL

如何在 C# 中將 Excel 轉換為 DataTable

這篇部落格示範如何實作 Excel 到DataTable轉換。 使用 IronXL 可以輕鬆完成這項任務,它提供了一種簡單且有效率的方式,可以用 C# 讀取和寫入 Excel 檔案。

1. IronXL

IronXL 是一個功能強大且易於使用的 C# 庫,旨在簡化 Excel 工作表的讀取、寫入、匯出資料和操作。 它為開發人員提供了一種無縫的方式來處理 Excel 電子表格,並自動執行 C# 專案中的任務。

使用 IronXL,您可以輕鬆地匯入匯出和修改 Excel 工作簿、工作表和儲存格中的資料。 它同時支援舊版 XLS 格式和新版 XLSX 格式,因此與多種 Excel 版本相容。

該程式庫提供了一個簡單的 API,使開發人員能夠對 Excel 檔案執行各種操作,例如建立新工作簿、讀取和寫入儲存格資料、應用程式格式、處理公式,甚至擷取圖表和影像。 IronXL 也支援處理複雜的資料結構,例如表格、範圍和命名範圍。

2. 先決條件

要在 C# 中使用 IronXL 處理 Excel 檔案並將其轉換為 DataTable,需要滿足一些先決條件:

1.開發環境:確保您的電腦上已設定相容的開發環境,例如 Visual Studio 或任何其他 C# IDE。

  1. IronXL 庫:下載並安裝 IronXL 庫。 您可以從 IronXL 官方網站取得該程式庫,也可以透過 Visual Studio 中的 NuGet 套件管理器取得。 在 C# 專案中包含 IronXL 命名空間,即可存取其類別和方法。
  2. .NET Framework 或 .NET Core: IronXL 同時支援 .NET Framework 和 .NET Core。 請根據您的專案需求,確保您的電腦上安裝了合適的版本。

3. 在 C# 中建立新項目

要使用 IronXL 程式庫執行與 Excel 相關的任務,第一步是在 Visual Studio 中建立一個 .NET 專案。 雖然可以使用任何版本的 Visual Studio,但建議使用最新版本。

本教學將使用控制台應用程式專案範本來示範如何使用 IronXL。

如何在 C# 中將 Excel 轉換為 DataTable,圖 1:新項目 新專案

選擇項目類型後,請繼續指定項目的名稱和位置。 此外,您還可以選擇專案的首選框架,例如 .NET Core 6。

如何在 C# 中將 Excel 轉換為 DataTable,圖 2:專案配置 專案配置

產生解決方案後,您可以存取 Program.cs 文件,在其中輸入程式碼並建立/執行應用程式。

如何在 C# 中將 Excel 轉換為 DataTable,圖 3:Program.cs Program.cs

4. 安裝 IronXL

IronXL 庫可以透過多種方式下載和安裝。 這些工具包括

  • 使用 Visual Studio NuGet 套件
  • 使用 Visual Studio 命令列

4.1 使用 Visual Studio NuGet 套件

若要在 Visual Studio 中使用 NuGet 套件管理器安裝 IronXL 庫,請開啟 NuGet 套件管理器,然後在"瀏覽"標籤中搜尋 IronXL。

在搜尋結果中找到 IronXL 後,選擇它並繼續進行安裝。 安裝完成後,您就可以在專案中使用 IronXL 庫了。

下面的螢幕截圖顯示如何在 Visual Studio 中開啟 NuGet 套件管理器。

如何在 C# 中將 Excel 轉換為 DataTable,圖 4:NuGet 套件管理器 NuGet 套件管理器

搜尋結果中的 IronXL:

如何在 C# 中將 Excel 轉換為 DataTable,圖 5:IronXL IronXL

4.2 使用 Visual Studio 命令列

許多開發者喜歡使用命令列介面安裝軟體包。 若要使用命令列安裝 IronXL,請依照下列步驟操作:

  • 在 Visual Studio 中,前往"工具" > "NuGet 套件管理員" > "套件管理員控制台"
  • 在程式包管理器控制台標籤中輸入以下代碼:
Install-Package IronXL.Excel

現在該軟體包將下載並安裝到當前專案中,即可使用。

如何在 C# 中將 Excel 轉換為 DataTable,圖 6:安裝 IronXL 套件 安裝 IronXL 軟體包

5. 使用 IronXL 將 Excel 資料轉換為資料表

使用 IronXL 可以輕鬆地將 Excel 檔案流程中的 Excel 資料匯出到 C# 中的DataTable 。 本節將討論如何使用 IronXL 將 Excel 工作表資料轉換為DataTable

首先,需要一個包含要轉換為DataTable資料的範例 Excel 檔案。 為了演示,需要建立一個簡單的 Excel 檔案。

如何在 C# 中將 Excel 轉換為 DataTable,圖 7:Excel 範例 範例 Excel

現在我們來看看程式碼範例:

using IronXL;
using System;
using System.Data;

class Program
{
    static void Main()
    {
        // Load the Excel workbook from a file
        WorkBook workBook = WorkBook.Load("sample.xlsx");

        // Access the default worksheet in the workbook
        WorkSheet workSheet = workBook.DefaultWorkSheet;

        // Convert the worksheet data to a DataTable
        // Set the parameter to true to consider the first row as column headers
        DataTable dataTable = workSheet.ToDataTable(true);

        // Iterate over each row in the DataTable
        foreach (DataRow row in dataTable.Rows)
        {
            // Print each column in the row
            for (int i = 0; i < dataTable.Columns.Count; i++)
            {
                Console.Write($"{row[i]} \t");
            }
            Console.WriteLine(); // Move to the next line after printing each row
        }
    }
}
using IronXL;
using System;
using System.Data;

class Program
{
    static void Main()
    {
        // Load the Excel workbook from a file
        WorkBook workBook = WorkBook.Load("sample.xlsx");

        // Access the default worksheet in the workbook
        WorkSheet workSheet = workBook.DefaultWorkSheet;

        // Convert the worksheet data to a DataTable
        // Set the parameter to true to consider the first row as column headers
        DataTable dataTable = workSheet.ToDataTable(true);

        // Iterate over each row in the DataTable
        foreach (DataRow row in dataTable.Rows)
        {
            // Print each column in the row
            for (int i = 0; i < dataTable.Columns.Count; i++)
            {
                Console.Write($"{row[i]} \t");
            }
            Console.WriteLine(); // Move to the next line after printing each row
        }
    }
}
Imports Microsoft.VisualBasic
Imports IronXL
Imports System
Imports System.Data

Friend Class Program
	Shared Sub Main()
		' Load the Excel workbook from a file
		Dim workBook As WorkBook = WorkBook.Load("sample.xlsx")

		' Access the default worksheet in the workbook
		Dim workSheet As WorkSheet = workBook.DefaultWorkSheet

		' Convert the worksheet data to a DataTable
		' Set the parameter to true to consider the first row as column headers
		Dim dataTable As DataTable = workSheet.ToDataTable(True)

		' Iterate over each row in the DataTable
		For Each row As DataRow In dataTable.Rows
			' Print each column in the row
			For i As Integer = 0 To dataTable.Columns.Count - 1
				Console.Write($"{row(i)} " & vbTab)
			Next i
			Console.WriteLine() ' Move to the next line after printing each row
		Next row
	End Sub
End Class
$vbLabelText   $csharpLabel

在上面的程式碼中,使用 IronXL 提供的WorkBook.Load方法將 Excel 檔案載入為WorkBook對象,然後以WorkSheet物件的形式存取其第一個工作表資料。 若要將此WorkSheet轉換為資料表,可以使用workSheet.ToDataTable方法將資料轉換並儲存到新的DataTable變數中。

最後,將DataTable資料列印到控制台進行視覺化。

如何在 C# 中將 Excel 轉換為 DataTable,圖 8:將資料匯出到 DataTable 輸出 匯出資料到資料表輸出

6.結論

在 C# 中使用 DataTable 為在應用程式中處理 Excel 資料提供了一個強大且有效率的解決方案。 透過利用 IronXL 等函式庫,開發人員可以輕鬆地將 Excel 資料轉換為 DataTable,並釋放 C# 的全部潛力。

本教學探討了 IronXL 的功能及其與 C# 的無縫整合。 我們討論了使用 Excel 檔案的先決條件,例如擁有相容的開發環境、安裝 IronXL 程式庫以及確保適當的 .NET Framework 或 .NET Core 版本。

我們也示範如何在 Visual Studio 中建立一個新的 C# 項目,並透過 NuGet 套件管理器或 Visual Studio 命令列安裝 IronXL。 IronXL 成功整合到專案後,我們示範如何使用該程式庫易於使用的 API 將資料匯出到 DataTable。

透過載入 Excel 文件,存取所需的工作表,並利用 IronXL 提供的ToDataTable方法,我們能夠提取資料並將其儲存在 DataTable 中。 最後,我們展示瞭如何透過在控制台中列印其內容來視覺化資料表。

使用 C# 中的IronXL和 DataTable,開發人員可以建立強大的應用程序,這些應用程式可以與 Excel 資料無縫交互,從而實現高效的資料處理、分析和視覺化。 透過本教學所獲得的知識,您現在可以自信地將 Excel 工作表整合到您的 C# 專案中,並充分利用 DataTable 提供的豐富功能。 有關 IronXL 的更多教程,請訪問教程頁面

常見問題解答

在不使用 Interop 的情況下,如何在 C# 中將 Excel 轉換為 DataTable?

您可以使用 IronXL 在 C# 中將 Excel 資料轉換為 DataTable。使用 WorkBook.Load 載入您的 Excel 檔案,存取所需的工作表,並使用 workSheet.ToDataTable 執行轉換。

在 C# 專案中設定 IronXL 以進行 Excel 操作的步驟為何?

若要在您的 C# 專案中設定 IronXL,請確保您已安裝 Visual Studio,然後使用 NuGet 套件管理員搜尋並安裝 IronXL,或使用 Install-Package IronXL.Excel指令行。

IronXL 可以同時用於 .NET Framework 和 .NET Core 嗎?

是的,IronXL 與 .NET Framework 和 .NET Core 相容,可在不同的開發環境中靈活處理 Excel 資料。

IronXL.Excel 是否同時支援 Excel 檔案的 XLS 和 XLSX 格式?

IronXL.Excel 支援 XLS 和 XLSX 兩種格式,因此可處理各種不同版本的 Excel 檔案。

在 C# 中使用 IronXL.Excel 進行 Excel 資料處理有哪些優點?

IronXL.Excel 提供簡單易用的 API,可用於 C# 語言讀取、寫入和處理 Excel 檔案。它簡化了資料匯入/匯出程序,並支援格式化和公式處理等進階功能。

使用 IronXL.Excel 將 Excel 轉換為 DataTable 時,如何排除常見問題?

確保 IronXL 已經正確安裝,並在您的專案中引用。檢查您的 Excel 檔案路徑是否正確,且檔案未被其他程序使用。請參閱 IronXL 文件以瞭解特定的錯誤訊息。

建議在何種開發環境下使用 IronXL?

建議使用 Visual Studio 來使用 IronXL,因為 Visual Studio 提供強大的開發工具,並可與 C# 專案無縫整合。

如何在 C# 中將從 Excel 檔取得的 DataTable 內容視覺化?

使用 IronXL.Excel 將 Excel 資料轉換為 DataTable 之後,您可以在 C# 中遍歷 DataTable 的行和列,將內容列印到控制台,以進行可視化。

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