【问题标题】:Apache POI - is there a way to create pivot table on SXSSFSheet?Apache POI - 有没有办法在 SXSSFSheet 上创建数据透视表?
【发布时间】:2015-11-05 09:01:30
【问题描述】:

尝试将大型数据集写入 excel,并且使用 SXSSFWorkbook 而不是 xssfworkbook 能够很好地做到这一点。

现在我正在尝试使用已编写的大型数据集作为基础数据创建一个数据透视表。不幸的是,SXSSFSheet 没有createPivotTable:只有 XSSFSheet 有这个功能。

无论如何我可以使用SXSSFSheet 创建数据透视表吗?

【问题讨论】:

  • SXSSF 必须牺牲各种东西才能达到极低的内存占用。可悲的是,你不能既吃蛋糕又吃……

标签: apache-poi pivot-table


【解决方案1】:

在我的例子中,我使用 SXSSFWorkbook 创建一个大的 .xlsx,并在几张纸上进行透视。

所以我用下面的代码创建了这些工作表。并确保您的源表也是 XSSFSheet 否则会导致一些错误。 (与枢轴无关的工作表可能是工作表/SXSSFSheet 很好)

希望此解决方案可以帮助您解决问题。

XSSFSheet sheet = workbook.getXSSFWorkbook().createSheet("Pivot sheet");
AreaReference ar = new AreaReference("A1:" + "AI" + (source.getLastRowNum() + 1));
CellReference cr = new CellReference("A1");
XSSFPivotTable pivotTable = sheet.createPivotTable(ar, cr, source);

【讨论】:

  • "source" 不一定需要是 "XSSFSheet" - 但是当使用 "SXSSFSheet" 时,请确保 "AreaReference" 的第一行在 SXSSFWorkbook 的行访问窗口中以避免在 createPivotTable->createCacheFields 调用堆栈的下方某处出现 NullPointerException。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-09-12
  • 2023-03-09
  • 1970-01-01
  • 1970-01-01
  • 2010-11-03
相关资源
最近更新 更多