我在尝试使用Excel.ExcelReaderFactory(http://exceldatareader.codeplex.com/)打开一些xls文件时遇到此错误
IExcelDataReader excelReader = ExcelReaderFactory.CreateBinaryReader(stream);
excelReader.IsFirstRowAsColumnNames = false;
DataSet spreadsheetDocument = excelReader.AsDataSet();
错误:在文件
中找不到流'Workbook'或'Book'
调用CreateBinaryReader
时发生错误有些文件100%有效,但有些文件会出现此异常。有没有人有任何想法?
他们网站上的类似问题(http://exceldatareader.codeplex.com/discussions/461766)
答案 0 :(得分:2)
这是http://exceldatareader.codeplex.com/discussions/461766#post1113133我认为我会在这里发布:
同样的问题,与水晶报告xls文件相同的异常。 这是因为“Excel数据读取器”将块字符串定义为“工作簿”和“书籍”,而将Crystal报表定义为“工作簿”:您必须进行不区分大小写的比较!
打开“Excel \ Core \ BinaryFormat \ XlsRootDirectory.cs”并替换第75行
if (e.EntryName == EntryName)
与
if (string.Equals(e.EntryName, EntryName, StringComparison.CurrentCultureIgnoreCase))
对我来说它解决了。
祝你有愉快的一天, 马可