Схема сценария дела
Объект HSSFWorkbook - это интерфейс для открытия до 2007/2010 файлов Excel.
В это сообщение в блоге из группы поддержки Excel В нем говорится:
В предыдущих версиях Excel вы могли использовать не более трех условных форматов. В Office Excel 2007 такого ограничения нет; у вас может быть столько условных форматов, сколько вам нужно.
Итак, если у вас есть файл Excel, созданный в Excel 2003, и вы открываете его с помощью HSSFWorkbook, у вас не должно возникнуть проблем.
Однако можно создать файл в Excel 2007, Excel 2010, LibreOffice Calc и т. Д ... с более чем 3 правилами на ячейку , а затем Сохранить его в формате Excel 2003 , сохраняя эти определенные правила.
Когда POI обнаруживает формат Excel до 2007 года, он открывает его с помощью HSSFWorkbook и всего остального ... и когда он сталкивается с более чем 3 определенными правилами, он вызывает исключение.
** Файлы примеров **
- Вызывает исключение
- Правильно сохраненный файл Excel
** Решение **
- Сохраните файл в формате Excel 2007/2010 в формате XML (xlsx).
- убедитесь, что вы используете следующие библиотеки.
- пои-3,10-Конечное 20140208.jar
- пои-OOXML-3,10-Конечное 20140208.jar
- XMLBeans-2.3.0.jar
- dom4j-1.6.1.jar
- пои-OOXML-схемы-3,10-Конечное 20140208.jar
- Открыть рабочую книгу как таковую
Workbook myWorkbook = WorkbookFactory.create(new FileInputStream(new File(myFilePath)));
Я уже сообщал об этом как Ошибка .