Почему я получаю исключение «IOException: размер записи ZIP слишком велик» при попытке открыть файл Excel с помощью Apache POI?

1

Проблема такая же, как описано здесь

Но так как решение найдено там, пытаясь снова открыть эту тему? Короче говоря, я использую Apache POI 3.8. У меня есть файл *.xlsm с макросами. Я пытаюсь открыть этот файл во время развертывания приложения, но получаю сообщение об ошибке внутри конструктора " XSSFWorkbook ", в котором говорится, что " Размер записи ZIP слишком велик ". Странная часть заключается в том, что я могу выполнять эту операцию локально в своем IDEA без каких-либо проблем. Был бы признателен, если бы кто-то разделил идеи о том, что происходит, если таковые имели место в прошлом.

  • 1
    Какие версии JDK используются на вашем сервере приложений и локальном компьютере?
  • 0
    Должно быть 1.6 на обоих
Показать ещё 3 комментария
Теги:
excel
zip
apache-poi

2 ответа

2

Понимая немного через связанный код, я предполагаю, что это зависит от того, где находится файл. Возможно, если это файл, то poi обрабатывает его иначе, чем если это какой-то другой источник (например, в памяти)?

Если это так, то вы, вероятно, можете решить проблему, записав файл во временный файл, а затем загрузив его в poi. В частности, если вы создаете XSSFWorkbook из файла, вы не должны ударять по этой проблеме. Согласно javadoc, вы делаете это:

   OPCPackage pkg = OPCPackage.open(path);
   XSSFWorkbook wb = new XSSFWorkbook(pkg);
   // work with the wb object
   ......
   pkg.close(); // gracefully closes the underlying zip file
  • 0
    Попробовал это тоже. Но то же самое исключение при чтении из временного файла.
  • 0
    @LaRRy - можешь показать это исключение? если посмотреть на источник, это означает, что вы не будете использовать тот же класс при загрузке из файла. (в частности, ZipFileZipEntrySource против ZipInputStreamZipEntrySource).
Показать ещё 9 комментариев
1

Поэтому причина в том, что Maven искал файл шаблона при создании архива приложений.

  • 2
    Фильтрация ресурсов должна быть отключена для бинарных ресурсов!

Ещё вопросы

Сообщество Overcoder
Наверх
Меню