IRONSOFTWAREHOME
USING IRONXL

using IronXL 將 Excel 檔案匯入 DataTable

Curtis Chau
Curtis Chau
Updated: 2026年5月8日

C# 將 Excel 文件匯入至 DataTable 使用 IronXL

開發者的一天中,手動解析 Excel 文件很少是讓人開心的事。 我們都曾在這種情況下,試圖處理舊版 OLEDB 連接字串或試圖將無結構的試算表資料映射為您的 .NET 應用程式實際理解的內容。

C# 中的 DataTable 是一個強大的工具。 它充當完美的橋樑,將那些行和列轉化為熟悉的結構,隨時準備進行 LINQ 查詢、DataGrid 綁定或快速導入至 SQL 資料庫。

IronXL 減輕了此過程的負擔。 它使用一個簡單、直觀的 ToDataTable 方法來處理轉換,而不是複雜的配置。 無論您是在構建報告工具還是資料遷移腳本,這是您輕鬆匯入 Excel 資料的方法。

想要跟著做嗎? 使用 IronXL 免費試用版 親自嘗試這個強大的程式庫。

How Can You Import an Excel File into a DataTable in C#?

要在 C# 中將 Excel 文件匯入 DataTable,請使用 WorkBook.Load 載入工作簿,存取目標工作表,然後調用 ToDataTable 方法。 此方法適用於 XLSX 文件、XLS、XLSM 和 CSV 格式。 請確保參考以下命名空間以存取所需的類。

通過 Visual Studio 中的 NuGet 套件管理器輸入以下命令來安裝 IronXL:

PM > Install-Package IronXL.Excel

然後,使用以下簡潔的程式碼片段來移動您的資料:

using IronXL;
using System;
using System.Data;
class Program
{
    static void Main(string[] args)
    {
        // Load the Excel file from the specified path
        string filePath = "sales-data.xlsx";
        WorkBook workbook = WorkBook.Load(filePath);
        // Access the first worksheet in the workbook
        WorkSheet worksheet = workbook.DefaultWorkSheet;
        // Convert worksheet to DataTable with first row as column headers
        DataTable dt = worksheet.ToDataTable(true);
        // Display the imported data
        foreach (DataRow row in dt.Rows)
        {
            Console.WriteLine(string.Join(" | ", row.ItemArray));
        }
    }
}

輸出

將 Excel 文件匯入 DataTable 使用 IronXL:圖 1 - Excel 文件匯入到 DataTable

WorkBook.Load 方法從字串 filePath 位置讀取 Excel 文件,並建立一個包含所有 Excel 表格資料的工作簿物件。 ToDataTable(true) 參數表示第一行包含列標題,這些標題會自動用作 DataTable 列名稱。

讀取 Excel 文件資料到 DataTable 的最佳方法是什麼?

有效讀取 Excel 文件內容需要處理標題行和原始資料情況。 IronXL 的 ToDataTable 方法接受一個布林參數,該參數確定第一行是作為列名稱還是作為資料處理。 請注意,處理擴展屬性或轉換複雜的單元格型別可能需要額外的配置,但預設方法能夠健壯地處理大多數情況。

using IronXL;
using System.Data;
// Load workbook from file path
string filePath = @"C:\Data\inventory.xlsx";
WorkBook workbook = WorkBook.Load(filePath);
WorkSheet worksheet = workbook.WorkSheets[0];
// First row as headers (true) or as data (false)
DataTable dataTableWithHeaders = worksheet.ToDataTable(true);
DataTable dataTableWithoutHeaders = worksheet.ToDataTable(false);
// Process each row in the DataTable
foreach (DataRow row in dataTableWithHeaders.Rows)
{
    for (int i = 0; i < dataTableWithHeaders.Columns.Count; i++)
    {
        object value = row[i];
        Console.Write($"{value}\t");
    }
    Console.WriteLine();
}

輸出

將 Excel 文件匯入 DataTable 使用 IronXL:圖 2 - 匯入和讀取 Excel 文件到 DataTable 的輸出

這種靈活性使得 IronXL 非常適合處理無論其結構如何的 Excel 試算表文件。 與 EPPlus 套件或傳統方法需要新的 OleDbDataAdapter 實例不同,IronXL 在一個方法調用中處理轉換。 該程式庫支持 .NET Core、.NET Framework 和跨平台部署,而不需要安裝 Microsoft Excel。

如何將多個 Excel 工作表轉換為 DataSet?

當您的 Excel 工作簿包含多個工作表時,轉換為 DataSet 可保留每個 Excel 工作表作為集合中的單獨 DataTable。 這種方法對於報告應用程式和多工作表資料處理至關重要。

using IronXL;
using System;
using System.Data;
// Load multi-sheet workbook
WorkBook workbook = WorkBook.Load("quarterly-reports.xlsx");
// Convert entire workbook to DataSet (each sheet becomes a DataTable)
DataSet dataset = workbook.ToDataSet();
// Iterate through all tables in the DataSet
foreach (DataTable table in dataset.Tables)
{
    Console.WriteLine($"Sheet: {table.TableName}");
    Console.WriteLine($"Rows: {table.Rows.Count}, Columns: {table.Columns.Count}");
    foreach (DataRow row in table.Rows)
    {
        Console.WriteLine(string.Join(", ", row.ItemArray));
    }
}

輸出

將 Excel 文件匯入 DataTable 使用 IronXL:圖 3 - 匯入多工作表 Excel 文件到 DataSet 的輸出

ToDataSet 方法 建立一個包含每個工作表的 DataTable 物件的新 DataSet。 每個表的 TableName 屬性反映了原始 Excel 表名,使得在處理期間能夠輕鬆引用特定資料。

如何將 Excel 中的資料匯入資料庫?

一個常見的工作流程涉及讀取 Excel 文件資料並將其插入到資料庫系統中。 DataTable 結構與 ADO.NET 的資料庫操作無縫整合。

using IronXL;
using System.Data;
using System.Data.SqlClient;
string filePath = @"C:\imports\customer-data.xlsx";
WorkBook workbook = WorkBook.Load(filePath);
WorkSheet worksheet = workbook.DefaultWorkSheet;
// Convert Excel data to DataTable
DataTable dt = worksheet.ToDataTable(true);
// Validate data before database insert
if (dt == null || dt.Rows.Count == 0)
{
    Console.WriteLine("No data to import");
    return;
}
// Insert into database using SqlBulkCopy
string connectionString = "Server=.;Database=Sales;Trusted_Connection=True;";
using (SqlConnection connection = new SqlConnection(connectionString))
{
    connection.Open();
    using (SqlBulkCopy bulkCopy = new SqlBulkCopy(connection))
    {
        bulkCopy.DestinationTableName = "Customers";
        bulkCopy.WriteToServer(dt);
    }
}
Console.WriteLine($"Imported {dt.Rows.Count} records successfully");

此程式碼示範了如何載入 Excel 文件,將其轉換為 DataTable,並執行批量的資料庫插入。 空值檢查確保在嘗試匯入操作之前的資料完整性。

如何將 DataTable 匯出回 Excel?

IronXL 支援雙向資料流,允許您從 DataTable 物件建立 Excel 文件,適用於報告和資料匯出場景。

using IronXL;
using System.Data;
// Create sample DataTable
DataTable dt = new DataTable("Products");
dt.Columns.Add("ProductID", typeof(int));
dt.Columns.Add("Name", typeof(string));
dt.Columns.Add("Price", typeof(decimal));
dt.Rows.Add(1, "Widget", 29.99m);
dt.Rows.Add(2, "Gadget", 49.99m);
// Create new workbook and load DataTable
WorkBook workbook = WorkBook.Create();
workbook.LoadWorkSheetsFromDataSet(new DataSet { Tables = { dt } });
// Save as Excel file
workbook.SaveAs("exported-products.xlsx");

輸出

將 Excel 文件匯入 DataTable 使用 IronXL:圖 4 - DataTable 匯出到 Excel

LoadWorkSheetsFromDataSet 方法接受包含 DataTable 物件的 DataSet,並建立相應的工作表。 在文件中了解更多關於匯出台 DataTable 到 Excel的資訊。

結論

IronXL 將 Excel 到 DataTable 轉換的複雜性簡化為簡單的方法調用。 無論是匯入單個 Excel 工作表還是處理多工作表的工作簿到完整的 DataSet,程式庫有效地處理 XLSX 文件、資料型別轉換和基於流的載入。

DataTable 的靈活性與 IronXL 的直觀 API 相結合,可為資料庫整合、報告系統和應用程式資料綁定提供強大的資料工作流程。 下載 IronXL 精簡您的 Excel 資料處理,或者 購買許可證 以進行生產部署。

第一步:
arrow pointer
Curtis Chau
技術作家

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

...
閱讀更多

相關文章

Key in blue circle

立即免費取得 30 天試用金鑰

Your trial license will be sent to your email address

無任何限制。100% 解鎖。無需信用卡。

bullet_checked無需信用卡或建立帳號無任何限制。100% 解鎖。無需信用卡。
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried IronPDF
預約您的免費即時演示
Booking Badge

全球數百萬工程師的信賴

Iron Software的客戶標誌
獲得無義務諮詢
填寫以下表格或電郵sales@ironsoftware.com
您的資料將始終保密。
全球數百萬工程師的信賴
Iron Software的客戶標誌
立即獲取您的30天試用金鑰
無需信用卡或帳戶建立