如何在 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,有一些先決條件需要滿足:
- 開發環境:確保您的機器上已設定相容的開發環境,例如Visual Studio或其他C# IDE。
- IronXL程式庫:下載並安裝IronXL程式庫。 您可以從IronXL官方網站獲取程式庫,或通過Visual Studio中的NuGet套件管理器獲取。 在您的C#專案中包括IronXL命名空間以存取其類和方法。
- .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
在上述程式碼中,使用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行和列,將內容列印到主控台以進行可視化。




