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