ExcelDataReader 在某些情况下不读取 xls 文件
ExcelDataReader not reading the xls file in some cases
当对某些 Excel 文件使用 excelDatareader 时,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();
}
Excel 可以有两种类型:
-二进制(MS Excel 2003 及更早版本 - .xls)
-Zip - 基于 Open Office XML 标准(MS Excel 2007 之后 - .xlsx)
对于较旧的 excel 格式文件,您应该尝试使用以下方法:
ExcelReaderFactory.CreateBinaryReader(文件流);
如果您改用 ExcelReaderFactory.CreateReader,ExcelDataReader 在大多数情况下可以检测到它是什么类型的文件。有关支持的格式和版本,请参阅 https://github.com/ExcelDataReader/ExcelDataReader。
当对某些 Excel 文件使用 excelDatareader 时,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();
}
Excel 可以有两种类型: -二进制(MS Excel 2003 及更早版本 - .xls) -Zip - 基于 Open Office XML 标准(MS Excel 2007 之后 - .xlsx)
对于较旧的 excel 格式文件,您应该尝试使用以下方法:
ExcelReaderFactory.CreateBinaryReader(文件流);
ExcelDataReader 在大多数情况下可以检测到它是什么类型的文件。有关支持的格式和版本,请参阅 https://github.com/ExcelDataReader/ExcelDataReader。