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