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列的数据