跳至頁尾內容
USING 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。
  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,請按照以下步驟:

  • 在Visual Studio中導航到 工具 > NuGet套件管理器 > 套件管理器控制台
  • 在套件管理器控制台的選項卡中輸入以下行:
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

在上述程式碼中,使用IronXL提供的WorkBook方法將Excel文件載入為WorkBook.Load物件,然後存取其第一個工作表資料作為WorkSheet。 要將此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的教程,請瀏覽教程頁面

常見問題

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

您可以使用IronXL將Excel資料轉換為C#中的DataTable。使用WorkBook.Load載入您的Excel文件,存取所需的工作表,然後使用workSheet.ToDataTable進行轉換。

設定IronXL進行Excel操作的C#項目的步驟有哪些?

要在您的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來讀取、寫入和操作C#中的Excel文件。它簡化了資料導入/導出過程,並支持格式化和公式處理等高級功能。

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

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

推薦使用什麼開發環境來使用IronXL?

推薦使用Visual Studio來使用IronXL,因為它提供了強大的開發工具和針對C#項目的無縫整合。

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

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

Curtis Chau
技術作家

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

除了開發,Curtis對物聯網(IoT)有濃厚的興趣,探索創新的方法來整合硬體和軟體。在空閒時間,他喜歡玩遊戲和建立Discord機器人,結合他對技術的熱愛與創造力。

Iron 支援團隊

我們線上24小時,每週5天。
聊天
電子郵件
給我打電話