1、首先需要在管理NuGet程序包中添加外部包:ExcelDataReader,添加好后,不要忘記在命名空間那里引用。
2、定義文件流,將文件流傳入IExcelDataReader類型的對象excelReader中
1 private DataSet ExcelGetDataTable(string excelPath) 2 { 3 FileStream stream = new FileStream(excelPath,FileMode.Open,FileAccess.Read);//定義文件流 4 5 //首先判斷傳入的.xls文件還是xlsx文件 6 int index = excelPath.LastIndexOf('.');//獲取文件擴展名前‘.’的位置 7 string extensionName = excelPath.Substring(index + 1); 8 if(extensionName=="xls") 9 { 10 //傳入的xls文件---->97-2003format 11 excelReader = ExcelReaderFactory.CreateBinaryReader(stream); 12 } 13 if (extensionName == "xlsx") 14 { 15 //傳入的是xlsx文件---->2007 format 16 excelReader = ExcelReaderFactory.CreateOpenXmlReader(stream); 17 } 18 19 //1、DataSet----the result of each spreadsheet will be created in the result Table 20 DataSet result = excelReader.AsDataSet(); 21 return result; 22 //2、DataSet----Create column names from first row 23 //excelReader.IsFirstRowAsColumnNames = true; 24 //DataSet result = excelReader.AsDataSet(); 25 //備注:excelReader是IExcelDataReader類型的對象,該類型在ExcelDataReader命名空間中定義。通過調用該對象的相關方法,獲得DataSet對象。
26 27 }
3、DataSet對象----通過代碼可以看出來如何獲取DataSet對象的行和列的值
DataSet dataList=this.ExcelGetDataTable(this.textBox2.Text);//接受讀取的數據 string arriveDataTime = dataList.Tables[0].Rows[3][40].ToString(); //獲取Excel文件的第一個表的第四行第41列的數據