Используйте POI для анализа Excel, но получили исключение «Недопустимая подпись заголовка»,

Я пытался использовать Apache POI (версия 3.6) для анализа файла Excel .xls, но получил только исключение:

java.io.IOException: недопустимая подпись заголовка; читать 0x07B1FD124BEDF108, ожидается 0xE11AB1A1E011CFD0

У меня есть результат Googled, который в основном сказал, что «Файл на самом деле не является допустимым файлом excel (т.е. .csv и т. Д.), Но закончился суффиксом .xls». Но я уверен, что мой файл excel действителен (в формате Excel97-2003).

Для соображений секретности я не мог опубликовать мое excel, но когда я использую emacs hexl-mode для просмотра этого бинарного файла excel, заголовок:

D0CF 11E0 A1B1 1AE1

Я думаю, что это именно то, что ожидалось POI (E11AB1A1E011CFD0, но в big-endian). Но почему я получил исключение?

BTW, если я использую vim с командой%! Xxd для просмотра одного и того же файла excel, у меня есть заголовок, отличный от eamcs:

C390 C38F 11C3 A0C2

И весь двоичный файл кажется совершенно другим. Я не могу понять.

Спасибо за любую вашу помощь!

Если вы получите это исключение, то ваш файл действительно не является истинным файлом .xls. Вместо этого он будет либо другим, либо переименован в расширение .xls, либо поврежденный файл.

Я предлагаю вам попробовать открыть файл в Excel и сделать Save-As. Это может дать вам подсказку о типе файла. Если нет, сделайте сохранение – как Excel .xls, и тогда вы сможете открыть этот файл

Я не знаю, что вы делаете (я не узнаю заголовок), но могу заверить вас, что это не заголовок OLE2, как допустимый .xls-файл.

Возможно, Apache Tika может решить, какой бинарный файл он есть, поэтому вы всегда можете попробовать с банкой Tika-App

Просто идеал, если вы используете maven, убедитесь, что в фильтрации тегов ресурса установлено значение false. В противном случае maven может испортить файлы xls на этапе копирования в вашем pom.xml

  • Библиотека для работы с Excel - jxl?
  • Как я могу освободить память, хранящуюся в XSSFWorkbook?
  • Нужна логика для запуска Excel с помощью Java-кода с использованием Apache POI
  • Удалять столбцы Excel без пробелов с помощью Java
  • Не удалось получить testdata из xls, при запуске тестов селена через файл «Исполняемый ящик»
  • Как получить индекс строки последней непустой ячейки для определенного имени столбца (переданного как аргумент) из листа excel с использованием java?
  • Java apache poi: цвет ячейки excel
  • Получение данных из Excel и количество строк в Excel с использованием JAVA
  • Декодировать содержимое XML-таблицы в клипе, создаваемом Excel
  • Ошибка формулы строки POI Apache
  • Лучший способ экспортировать данные из Java в MS Excel
  • Interesting Posts

    Лучший способ связать два листа в excelba

    Установка оптимального значения в любом заданном заданном значении

    Excel, сколько строк содержит переменные данные

    Excell или R: код для автоматизации фильтрации несовместимых изменений данных.

    Как изменить количество выпадающих элементов, отображаемых для формы Excel VB6 Combobox

    Чтение определенной строки или столбца – phpExcel

    Выделение слова excel

    Ошибка передачи данных типа MATCH

    Шаблон Excel по умолчанию не выбран при экспорте в Excel из другого приложения

    (Excel) Предоставление диапазона ячеек такого же цвета, как условно отформатированные соседние ячейки

    Apache POI – Колонка с неанглийскими символами, например, тайская и ячейка пустая, а затем пропускает ячейку

    выберите верхний N процентов данных в листе

    Создание пакета SSIS в SSDT. Условное разделение в задаче потока данных вызывает разрыв пакета

    Как сделать среднюю формулу только количество чисел больше нуля?

    Сходство строк в Excel или сравнение ключевых слов

    Давайте будем гением компьютера.