将excelDatareader用于某些Excel文件时,ExcelReaderFactory.CreateOpenXmlReader(stream)
将返回null并且不会获取文件流。但是对于一些excel文件来说它运行得很完美。
有人可以解释一下原因吗?
static void Main(string[] args)
{
FileStream stream = File.Open(@"C:\Users\nichi-user\Desktop\BLRJCCI.xls", FileMode.Open, FileAccess.Read);
IExcelDataReader excelReader = ExcelReaderFactory.CreateOpenXmlReader(stream);
DataSet result = excelReader.AsDataSet();
result.Tables[0].TableName.ToString();
}
答案 0 :(得分:2)
Excel可以有两种类型: -Binary(MS Excel 2003及更早版本 - .xls) -Zip - 基于Open Office XML标准(MS Excel 2007以上 - .xlsx)
您应该尝试使用以下旧版excel格式文件:
ExcelReaderFactory.CreateBinaryReader(FILESTREAM);
答案 1 :(得分:0)
ExcelDataReader在大多数情况下可以检测使用ExcelReaderFactory.CreateReader时的文件类型。有关支持的格式和版本,请参阅https://github.com/ExcelDataReader/ExcelDataReader。