跳過到頁腳內容
使用 IRONXL

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

這篇博客展示了如何實現 Excel 到 DataTable 的轉換。 使用 IronXL 可以輕鬆完成此任務,IronXL 提供了一種簡單而高效的方法來讀寫 C# 中的 Excel 文件。

1. IronXL

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

With IronXL, you can easily import, export, and modify data in Excel workbooks, worksheets, and cells. 它支持較舊的 XLS 格式和較新的 XLSX 格式,因此兼容多種 Excel 版本。

The library offers a straightforward API that enables developers to perform various operations on Excel files, such as creating new workbooks, reading and writing data to cells, applying formatting, handling formulas, and even extracting charts and images. IronXL 還支持處理複雜的數據結構,如表格、範圍和命名範圍。

2. 先決條件

要使用 IronXL 在 C# 中處理 Excel 文件並將其轉換為 DataTable,需要具備以下先決條件:

  1. 開發環境:確保您在計算機上設置了兼容的開發環境,例如 Visual Studio 或任何其他 C# IDE。
  2. IronXL 庫:下載並安裝 IronXL 庫。 您可以從 IronXL 官網或通過 Visual Studio 中的 NuGet 包管理器獲取該庫。 在您的 C# 項目中包含 IronXL 命名空間以訪問其類別和方法。
  3. .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,請按照以下步驟進行:

  • Go to Tools > NuGet 套件管理器 > Package Manager Console in Visual Studio.
  • 在包管理控制台標籤中輸入以下行:
Install-Package IronXL.Excel

現在包將下載並安裝到當前項目中,並可以使用了。

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

5. 使用 IronXL 將 Excel 數據轉換為 DataTable

在 C# 中可以使用 IronXL 輕鬆實現將 Excel 文件流中的 Excel 數據導出到 DataTable。 本節將討論如何使用 IronXL 將 Excel 工作表數據轉換為 DataTable

首先,需要一個樣本 Excel 文件,其中包含您要轉換為 DataTable 的數據。 為了演示,應創建一個簡單的 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

In the above code, an Excel file is loaded as a WorkBook object using the WorkBook.Load method provided by IronXL and then accesses its first worksheet data as a WorkSheet. 要將此 WorkSheet 轉換為 DataTable,使用 workSheet.ToDataTable 方法來轉換並將數據存儲到新的 DataTable 變量中。

最後,DataTable 數據被打印到控制台進行可視化。

如何在 C# 中將 Excel 轉換為 DataTable,圖 8:將數據導出到 DataTable 輸出 將數據導出到 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 中。 最後,我們展示了如何通過在控制台中打印其內容來呈現 DataTable。

在 C# 中使用IronXL和 DataTable,開發人員可以構建與 Excel 數據無縫交互的強大應用程序,實現高效的數據處理、分析和可視化。 通過本教程獲得的知識,您現在可以自信地將 Excel 工作表納入您的 C# 項目,充分利用 DataTable 提供的豐富功能。 欲獲取更多關於 IronXL 的教程,請訪問教程頁面

常見問題解答

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

您可以使用 IronXL 將 Excel 數據轉換為 C# 中的 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 文件的 XLS 和 XLSX 格式?

IronXL 支持 XLS 和 XLSX 格式,使其能夠靈活處理各種版本的 Excel 文件。

在 C# 中使用 IronXL 進行 Excel 數據處理的優勢有哪些?

IronXL 提供了一個易於使用的 API 用於讀取、寫入和操作 Excel 文件。它簡化了數據導入/導出過程,支持格式化和公式處理等高級功能。

如何在使用 IronXL 將 Excel 轉換為 DataTable 時解決常見問題?

確保 IronXL 在您的項目中正確安裝並引用。檢查您的 Excel 文件路徑是否正確,並確保該文件未被其他進程使用。請參閱 IronXL 文檔以獲取特定的錯誤消息。

推薦使用哪種開發環境來使用 IronXL?

推薦使用 Visual Studio 來使用 IronXL,因為它提供了強大的開發工具和無縫集成的 C# 項目支持。

如何在 C# 中可視化從 Excel 文件獲得的 DataTable 內容?

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

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