1

将 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();
}

在此处输入图像描述

4

2 回答 2

4

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

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

ExcelReaderFactory.CreateBinaryReader(fileStream);

于 2015-01-22T13:34:57.563 回答
1

如果您改用 ExcelReaderFactory.CreateReader,ExcelDataReader 可以在大多数情况下检测文件的类型。有关支持的格式和版本,请参阅https://github.com/ExcelDataReader/ExcelDataReader 。

于 2017-08-19T12:21:32.017 回答