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

时间:2015-01-06 10:30:26

标签: c# c#-4.0 xls exceldatareader

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

enter image description here

2 个答案:

答案 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