ExcelDataReader在某些情况下不读取xls文件

neo*_*neo 2 c# xls c#-4.0 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();
}
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

小智 7

Excel 可以有两种类型: - 二进制(MS Excel 2003 及更早版本 - .xls) - Zip - 基于 Open Office XML 标准(MS Excel 2007 及以上版本 - .xlsx)

您应该尝试对较旧的 Excel 格式文件使用以下内容:

ExcelReaderFactory.CreateBinaryReader(fileStream);