2013-10-10 2 views
4

Я получаю эту ошибку при попытке открыть некоторые XLS файлы с помощью Excel.ExcelReaderFactory (http://exceldatareader.codeplex.com/)Excel.ExcelReaderFactory не может открыть некоторые файлы

IExcelDataReader excelReader = ExcelReaderFactory.CreateBinaryReader(stream); 

excelReader.IsFirstRowAsColumnNames = false; 
DataSet spreadsheetDocument = excelReader.AsDataSet(); 

Error: Neither stream 'Workbook' nor 'Book' was found in file

ошибка встречается, когда вы звоните CreateBinaryReader

Некоторые файлы работают на 100%, но другие предоставляют это исключение. У кого-нибудь есть идеи?

Похожий вопрос на их сайте (http://exceldatareader.codeplex.com/discussions/461766)

+0

Я сделал сравнение между файлом, который работает, и файл, который не делает. Файл, который не работает, имеет нижеследующее право: Crystal Decisions Powered by Crystal –

+0

Было бы разумно разместить ваш вопрос на форуме – Rohit

+0

Спасибо - я сделаю это тоже –

ответ

2

Это из http://exceldatareader.codeplex.com/discussions/461766#post1113133 думал, что я отправлю его здесь:

таких же проблему, то же самое исключение с хрустальным файлом отчет XLS. Это потому, что «Excel Data Reader» определяет строковые строки как «Рабочая книга» и «Книга», а Crystal Report - «WORKBOOK»: вы должны делать нечувствительное к регистру сравнение!

открытый "Excel \ Ядро \ BinaryFormat \ XlsRootDirectory.cs" и заменить строки 75

if (e.EntryName == EntryName) 

с

if (string.Equals(e.EntryName, EntryName, StringComparison.CurrentCultureIgnoreCase)) 

для меня решен.

имеют хороший день, марко

+2

Получение нового исключения теперь: Ошибка потока BIFF: размер буфера меньше длины ввода. на строке 32 в XlsBiffRecord.cs –

+3

Добавлен ReadOption.Loose для параметров CreateBinaryReader _excelReader = ExcelReaderFactory.CreateBinaryReader (поток, ReadOption.Loose); и теперь он работает на 100% –

Смежные вопросы