我已经看到开发人员从几年前就遇到了这个问题。我研究了很多论坛和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 分钟(如果应用程序没有耗尽内存)来处理一个简单且相当小的电子表格.xlsx 文件(200KB)。
我需要做什么来解决这个问题?(我使用的是 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 也说了同样的话..!