Медленные XSSFWorkbook и WorkbookFactory при чтении файлов xlsx
Я видел, что разработчики сталкивались с этой проблемой несколько лет назад. Я изучил много форумов и официальных документов POI. Тем не менее я еще не нашел ответ. Итак, проблема в том ... Я попробовал следующие два фрагмента:
Workbook wb = WorkbookFactory.create(new File("spreadsheet.xlsx"));
а также
File file = new File("C:\\spreadsheet.xlsx");
OPCPackage opcPackage = OPCPackage.open(file.getAbsolutePath());
XSSFWorkbook workbook = new XSSFWorkbook(opcPackage);
и любой из подходов занимает около 5-6 минут (если у приложения не хватает памяти) для обработки простого и довольно небольшого файла spreadsheet.xlsx (200 КБ).
Что мне нужно сделать, чтобы это исправить? (Я использую Apache POI 3.9)
/*****************************/
Процесс занимает много времени в следующих местах:
public class XSSFSheet extends POIXMLDocumentPart implements Sheet{
...
protected void read(InputStream is) throws IOException {
try {
-->>> worksheet = WorksheetDocument.Factory.parse(is).getWorksheet();
} catch (XmlException e){
throw new POIXMLException(e);
}
}
...
Я не могу отлаживать дальше. VisualVM также говорит то же самое ..!