我正在尝试使用Apache POI生成关于xslx格式的大型报告。我正在使用XSSF生成正确的xslx文件,但突然出现了内存错误。
为了避免内存不足,我试图像这样更改为SXSSF。
// Create results Sheet
SXSSFWorkbook workBook = new SXSSFWorkbook();
XSSFSheet xssfSheet = (XSSFSheet) workbook.createSheet(name);
PrintSetup printSetup = xssfSheet.getPrintSetup();
printSetup.setLandscape(true);
xssfSheet.setFitToPage(true);
xssfSheet.setHorizontallyCenter(true);
但我收到了这个错误
10:56:46,023 ERROR [stderr] (default task-47) java.lang.ClassCastException: org.apache.poi.xssf.streaming.SXSSFSheet cannot be cast to org.apache.poi.xssf.usermodel.XSSFSheet
我的问题是没有办法到workbook.createSheet(name)返回一个XSSFSheet实例来完成我的工作。
有一种方法可以将SXSSF转换为XSSF ??