У меня такая же проблема с файлом xlsx, созданным SpreadsheetGear (внешним поставщиком), который я пытаюсь проанализировать с помощью EPPlus. Когда я просматриваю свой код, я вижу, что все значения ячейки присутствуют, но они хранятся вне последовательности (например, значение ячейки A1 отображается в слоте для ячейки A17, например).
Как и в опубликованном Тиме, файл, созданный SpreadsheetGear, содержит данные ячеек, которые не имеют ссылок на ячейки (A1, B3, H17, ...). Это кажется быть требуемое значение, основанное на моем чтении спецификации документа (доступно here) на странице 19 (из более 5000 страниц)
Я проверенными, что это моя проблема, вручную редактируя Поступающий xlsx (вы можете сделать это, переименовав файл в расширение .zip, а затем вручную отредактировав соответствующий файл sheet.xml и добавив обновленную версию обратно в zip-файл, переименуйте его в xlsx и повторите попытку.)
В моем случае я добавил ссылку на недостающую ячейку на элемент «c» в файле sheetData/row (r = «A1», чтобы указать, например, столбец 1, строка 1) некоторых (но не всех) ячеек, которые были отсутствует этот атрибут. По-видимому, этого было достаточно, чтобы «обмануть» парсер файлов EPPlus, зная, как обрабатывать входящие данные.
Хотя это информативное знание, на самом деле, это не очень хорошо, потому что я пытаюсь обработать файл, поколение которого полностью не контролируется. Возможно, для других это не так.
Я должен добавить, что проблемы, которые я видел, были ограничены значениями «текстовых» ячеек. Это может быть связано с тем, как EPPlus обрабатывает ячейки, которые требуют поиска в ресурсе sharedStrings.xml, который ссылается на все значения на основе текстовых ячеек. – rickus123