我有一个宏启用格式的Excel文件。在这个excel中,有2-3个相关的下拉列表。我已经编写了宏代码来停止对特定列的删除。
我使用下面的代码上传此excel。
XSSFWorkbook workbook = new XSSFWorkbook(new
FileInputStream(fileName));
XSSFSheet sheet = workbook.getSheetAt(1);
XSSFRow row;
XSSFCell cell;
int rows = sheet.getPhysicalNumberOfRows();
但这是一个错误:
java.lang.OutOfMemoryError: GC overhead limit exceeded
com.sun.org.apache.xerces.internal.dom.DeferredDocumentImpl.getNodeObject
(DeferredDocumentImpl.java:972)
com.sun.org.apache.xerces.internal.dom.DeferredElementNSImpl.synchronizeD
ata(DeferredElementNSImpl.java:126)
com.sun.org.apache.xerces.internal.dom.ElementNSImpl.getNamespaceURI(Elem
entNSImpl.java:250)
在没有宏的情况下上传时,没有错误,而且工作正常.
发布于 2017-07-24 11:30:06
java.lang.OutOfMemoryError:超出了GC开销限制:当GC无法在连续循环中释放对象时,就会出现此错误。可以在vm启动参数中指定限制。
这意味着宏在您的参考资料是很强的,不符合GC资格。在没有宏的情况下,相同的对象有资格获得GC。
您需要了解为什么在添加宏时,引用变得可访问。
https://stackoverflow.com/questions/45278775
复制相似问题