如何在 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。
- IronXL 庫:下載並安裝 IronXL 庫。 您可以從 IronXL 官方網站取得該程式庫,也可以透過 Visual Studio 中的 NuGet 套件管理器取得。 在 C# 專案中包含 IronXL 命名空間,即可存取其類別和方法。
- .NET Framework 或 .NET Core: IronXL 同時支援 .NET Framework 和 .NET Core。 請根據您的專案需求,確保您的電腦上安裝了合適的版本。
3. Creating a New Project in 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:
4.2 使用 Visual Studio 命令列
許多開發者喜歡使用命令列介面安裝軟體包。 若要使用命令列安裝 IronXL,請依照下列步驟操作:
- 在 Visual Studio 中,前往"工具" > "NuGet 套件管理員" > "套件管理員控制台" 。
- 在程式包管理器控制台標籤中輸入以下代碼:
Install-Package IronXL.Excel
現在該軟體包將下載並安裝到當前專案中,即可使用。
如何在 C# 中將 Excel 轉換為 DataTable,圖 6:安裝 IronXL 套件 安裝 IronXL 軟體包
5. 使用 IronXL 將 Excel 資料轉換為資料表
使用 IronXL 可以輕鬆地在 C# 中實現從 Excel 檔案流匯出 Excel 資料到 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
在上面的程式碼中,使用 IronXL 提供的 @@ --CODE-99748-- @@ 方法將 Excel 檔案載入為 WorkBook對象,然後以WorkSheet 的方式存取其第一個工作表資料。 要將此 WorkSheet 轉換為 DataTable,可以使用 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 將 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 的行和列,將內容打印到控制台以便可視化。

