目錄
Toggle介紹
在開發各類應用程式時,簿記和報告常常是不可或缺的一部分。Excel作為最常用的電子表格工具之一,常常被用來存儲和管理數據。C# 是一種強大的程式設計語言,可以透過多種方法讀取Excel文件並將其轉換成DataTable。這篇教學將示範如何使用C#讀取Excel文件並將其轉換成DataTable。
所需工具和庫
在這個教學中,我們將使用以下工具和庫:
- .NET Framework 或 .NET Core
- Visual Studio 或其他C#開發環境
- ExcelDataReader 和 ExcelDataReader.DataSet 兩個NuGet包
安裝ExcelDataReader
首先,開啟NuGet包管理器,搜尋並安裝 ExcelDataReader
和 ExcelDataReader.DataSet
這兩個包。
實作步驟
匯入必要的命名空間
在程式碼文件的頂部,匯入處理Excel文件所需的命名空間:
using System;
using System.Data;
using System.IO;
using ExcelDataReader;
讀取Excel文件並轉換為DataTable
以下是一個讀取Excel文件並轉換為DataTable的範例程式碼:
public DataTable ExcelToDataTable(string filePath)
{
System.Text.Encoding.RegisterProvider(System.Text.CodePagesEncodingProvider.Instance);
using (var stream = File.Open(filePath, FileMode.Open, FileAccess.Read))
{
using (var reader = ExcelReaderFactory.CreateReader(stream))
{
var result = reader.AsDataSet(new ExcelDataSetConfiguration()
{
ConfigureDataTable = (_) => new ExcelDataTableConfiguration()
{
UseHeaderRow = true
}
});
return result.Tables[0];
}
}
}
詳細講解程式碼
註冊編碼提供者
第一步是註冊編碼提供者,以便能夠讀取含有不同字符編碼的Excel文件:
System.Text.Encoding.RegisterProvider(System.Text.CodePagesEncodingProvider.Instance);
打開文件流
使用 File.Open
方法以讀取模式打開Excel文件:
using (var stream = File.Open(filePath, FileMode.Open, FileAccess.Read))
建立讀取器
使用 ExcelReaderFactory.CreateReader
方法建立Excel讀取器:
using (var reader = ExcelReaderFactory.CreateReader(stream))
讀取並配置DataSet
使用讀取器的 AsDataSet
方法將Excel內容轉換為DataSet,我們需要配置DataSet的選項,例如使用第一行作為標題行:
var result = reader.AsDataSet(new ExcelDataSetConfiguration()
{
ConfigureDataTable = (_) => new ExcelDataTableConfiguration()
{
UseHeaderRow = true
}
});
返回DataTable
最後,從DataSet中取得第一個DataTable並返回:
return result.Tables[0];
測試和驗證
以下是一個簡單的測試方法,該方法讀取指定的Excel文件並在控制台輸出DataTable的內容:
class Program
{
static void Main(string[] args)
{
var filePath = "path_to_your_excel_file.xlsx";
var dataTable = ExcelToDataTable(filePath);
foreach (DataRow row in dataTable.Rows)
{
foreach (var item in row.ItemArray)
{
Console.Write(item + " ");
}
Console.WriteLine();
}
}
public static DataTable ExcelToDataTable(string filePath)
{
System.Text.Encoding.RegisterProvider(System.Text.CodePagesEncodingProvider.Instance);
using (var stream = File.Open(filePath, FileMode.Open, FileAccess.Read))
{
using (var reader = ExcelReaderFactory.CreateReader(stream))
{
var result = reader.AsDataSet(new ExcelDataSetConfiguration()
{
ConfigureDataTable = (_) => new ExcelDataTableConfiguration()
{
UseHeaderRow = true
}
});
return result.Tables[0];
}
}
}
}
結論
透過本文教學,你應該已經學會如何使用C#讀取Excel文件並將其內容轉換為DataTable。這個流程在處理各式各樣的數據匯入及導出需求中非常有用。希望這些步驟及示例程式碼能對你有所幫助。