我正在使用Grails 2.4.4,并尝试使用“apache poi”插件上载.xlsx文件,但是当文件大小约为8 MB时,我遇到了Java堆大小异常。
我的 Controller 具有以下操作和方法:
def uploadForm() {
String fileName = "D:\\File.xlsx"
Map excelSheetMap = process(fileName)
}
Map process(String fileName) {
ExcelBuilder excelBuilder = new ExcelBuilder(fileName)
//Getting JAVA Heap Size exception here when I am trying to create an object
//of ExcelBuilder with the file
}
ExcelBuilder.groovy类文件看起来像这样
class ExcelBuilder {
Workbook workbook
ExcelBuilder(String fileName) {
new File(fileName).withInputStream { is ->
workbook = new XSSFWorkbook(is)
}
}
}
我也尝试过使用grails-excel-import插件,但是我遇到了同样的异常。
有人可以建议如何在grails中导入大尺寸的excel文件。提前致谢。
最佳答案
Poi确实具有很高的内存占用量。请参阅:
http://poi.apache.org/spreadsheet/index.html
您可以尝试SXSSF。 SXSSF是XSSF的API兼容流扩展,可用于必须生成非常大的电子表格且堆空间有限的情况。