Неожиданные результаты с использованием Excel Data Reader - PullRequest
1 голос
/ 09 ноября 2011

Я читаю XLSX (файл Microsoft Excel XML) с помощью программы чтения данных Excel из http://exceldatareader.codeplex.com/ и получаю неожиданные результаты.

Следующий код выводит данные из нескольких вкладок

var reader = Excel.ExcelReaderFactory.CreateOpenXmlReader(uploadFile.InputStream);
while (reader.Read())
{
    System.Diagnostics.Debug.WriteLine(reader.FieldCount );
    for (int i = 0; i < reader.FieldCount; i++)
    {
        System.Diagnostics.Debug.Write(reader[i] + "*");
    }
    System.Diagnostics.Debug.WriteLine("\n~\n");
}

В одной строке я могу получить данные из 3 или более вкладок.

Я ожидал бы, что это будет проходить циклически и показывать все содержимое первой и только первой вкладок..

Что мне не хватает?

Обновление: Похоже, что приведенный выше код работает нормально, если в файле Excel есть только одна вкладка.Это может быть просто ошибка в этой библиотеке.Кто-нибудь еще использовал эту библиотеку для анализа файлов Excel с несколькими вкладками?

Спасибо

Ответы [ 2 ]

2 голосов
/ 21 марта 2012

ОК, поэтому мой ответ очень запоздал со ссылкой на этот вопрос, но если это поможет, попробуйте инкапсулировать ваш код в блок reader.NextResult(). Это работает так же, как и при анализе нескольких объектов DataTable внутри DataSet.

Кроме того, этот подход занимает очень мало места в памяти, в отличие от метода reader.AsDataSet(), который потребляет много памяти даже для книг размером до 20 МБ

например

var reader = Excel.ExcelReaderFactory.CreateOpenXmlReader(uploadFile.InputStream);
do
{
    while (reader.Read())
    {
        System.Diagnostics.Debug.WriteLine(reader.FieldCount );
        for (int i = 0; i < reader.FieldCount; i++)
        {
            System.Diagnostics.Debug.Write(reader[i] + "*");
        }
        System.Diagnostics.Debug.WriteLine("\n~\n");
    }
}while(reader.NextResult());
0 голосов
/ 09 ноября 2011

Именно поэтому я использую NPOI . Я пробовал несколько других читателей Excel, этот действительно работал для меня.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...