Excel是一個普遍被使用的電子表格應用程序,很多項目中都需要處理Excel文件中的數據。在.NET應用程序中,讀取Excel文件需要使用一些第三方組件,例如Excel Data Reader組件。在這篇文章中,我們將介紹如何使用Excel Data Reader輕鬆讀取Excel數據。
一、安裝Excel Data Reader
Excel Data Reader可以通過NuGet包管理器安裝。
Install-Package ExcelDataReader
安裝完成後,需要在程序中添加對ExcelDataReader和ExcelDataReader.DataSetExtensions的引用。
using ExcelDataReader; using System.Data;
二、讀取數據
使用Excel Data Reader讀取Excel文件,需要在代碼中創建一個ExcelReader對象並打開Excel文件。
//打開Excel文件
using (var stream = File.Open(filePath, FileMode.Open, FileAccess.Read))
{
using (var reader = ExcelReaderFactory.CreateReader(stream))
{
//讀取數據表
var result = reader.AsDataSet();
}
}
這段代碼將打開Excel文件並將其讀入DataSet。讀取到的數據會以DataTable的形式存在DataSet中。可以使用以下代碼將DataTable中的數據讀取出來:
foreach (DataTable table in result.Tables)
{
foreach (DataRow row in table.Rows)
{
foreach (DataColumn column in table.Columns)
{
//遍歷DataTable中的每個單元格
var value = row[column].ToString();
}
}
}
三、讀取特定的Excel表格
Excel文件可能包含多個表格,如果只需要讀取其中一個表格,可以在創建ExcelReader時指定表格的名稱或索引。
using (var stream = File.Open(filePath, FileMode.Open, FileAccess.Read))
{
using (var reader = ExcelReaderFactory.CreateReader(stream))
{
//讀取名為Sheet1的表格
var result = reader.AsDataSet(new ExcelDataSetConfiguration()
{
ConfigureDataTable = (tableReader) => new ExcelDataTableConfiguration()
{
UseHeaderRow = true
}
});
var table = result.Tables["Sheet1"];
}
}
這段代碼將讀取Excel文件中名為Sheet1的表格,並將其讀取到DataTable中。
四、讀取特定的列
如果只需要讀取特定的列,可以在讀取DataTable時只選擇需要的列。
using (var stream = File.Open(filePath, FileMode.Open, FileAccess.Read))
{
using (var reader = ExcelReaderFactory.CreateReader(stream))
{
//只讀取名為Name和Age的兩列
var result = reader.AsDataSet(new ExcelDataSetConfiguration()
{
ConfigureDataTable = (tableReader) => new ExcelDataTableConfiguration()
{
UseHeaderRow = true,
FilterColumn = (columnName) => columnName == "Name" || columnName == "Age"
}
});
var table = result.Tables[0];
}
}
這段代碼只讀取Excel文件中的名為Name和Age的兩列,並將其讀取到DataTable中。
五、讀取日期和時間類型的數據
Excel文件中可能包含日期和時間類型的數據,在讀取數據時需要注意類型轉換。
foreach (DataTable table in result.Tables)
{
foreach (DataRow row in table.Rows)
{
var dateValue = Convert.ToDateTime(row["Date"]);
var timeValue = TimeSpan.Parse(row["Time"].ToString());
}
}
這段代碼將讀取Excel文件中的日期和時間類型的數據,並將其轉換成.NET類型的日期和時間。
六、總結
使用Excel Data Reader組件可以輕鬆地讀取Excel文件中的數據,並且可以自定義需要讀取的表格和列。讀取日期和時間類型的數據時需要注意類型轉換問題。在實際項目中,需要根據具體的需求選擇合適的讀取方式。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/277155.html
微信掃一掃
支付寶掃一掃