简体   繁体   English

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

[英]ExcelDataReader not reading the xls file in some cases

When using excelDatareader for some Excel file the ExcelReaderFactory.CreateOpenXmlReader(stream) is returning null and not taking the filestream. 当对某些Excel文件使用excelDatareader时, ExcelReaderFactory.CreateOpenXmlReader(stream)返回null而不获取文件ExcelReaderFactory.CreateOpenXmlReader(stream) But for some excel file it is running perfect. 但对于某些excel文件,它运行完美。

Can somebody explain me the reason? 有人可以解释一下原因吗?

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 can be of two types: -Binary (MS Excel 2003 and older versions - .xls) -Zip - based on Open Office XML standards (MS Excel 2007 onwards - .xlsx) Excel可以分为两种类型:-二进制(MS Excel 2003和更早版本-.xls)-邮编-基于Open Office XML标准(从MS Excel 2007开始-.xlsx)

You should try to use following for older excel format files: 对于旧的excel格式文件,应尝试使用以下命令:

ExcelReaderFactory.CreateBinaryReader(fileStream); ExcelReaderFactory.CreateBinaryReader(FILESTREAM);

ExcelDataReader can in most cases detect what type of file it is if you use ExcelReaderFactory.CreateReader instead. 如果您改用ExcelReaderFactory.CreateReader,则ExcelDataReader在大多数情况下可以检测文件的类型。 See https://github.com/ExcelDataReader/ExcelDataReader for supported formats and versions. 有关受支持的格式和版本,请参见https://github.com/ExcelDataReader/ExcelDataReader

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM