Java ApachePOI:克隆包含图表的工作表

Java ApachePOI:克隆包含图表的工作表,java,excel,apache-poi,export-to-excel,Java,Excel,Apache Poi,Export To Excel,例如,根据许多来源,从POI使用excel图表的唯一好方法可能是使用excel文件和现有图表作为模板,并修改图表使用的源单元格。而且效果很好 问题是,我们不仅需要一个工作表,还需要多个(我们不知道在编译时有多少个)工作表,这些工作表具有相同的图表,但具有不同的(动态生成的)数据。使用是复制模板工作表的一种方法。但只有当图表被克隆到工作表上时,if才能正常工作 当我尝试克隆带有图表的工作表时,我得到: Exception in thread "main" java.lang.RuntimeExce

例如,根据许多来源,从POI使用excel图表的唯一好方法可能是使用excel文件和现有图表作为模板,并修改图表使用的源单元格。而且效果很好

问题是,我们不仅需要一个工作表,还需要多个(我们不知道在编译时有多少个)工作表,这些工作表具有相同的图表,但具有不同的(动态生成的)数据。使用是复制模板工作表的一种方法。但只有当图表被克隆到工作表上时,if才能正常工作

当我尝试克隆带有图表的工作表时,我得到:

Exception in thread "main" java.lang.RuntimeException: The class org.apache.poi.hssf.record.chart.ChartFRTInfoRecord needs to define a clone method
    at org.apache.poi.hssf.record.Record.clone(Record.java:71)
    at org.apache.poi.hssf.model.InternalSheet.cloneSheet(InternalSheet.java:388)
    at org.apache.poi.hssf.usermodel.HSSFSheet.cloneSheet(HSSFSheet.java:125)
    at org.apache.poi.hssf.usermodel.HSSFWorkbook.cloneSheet(HSSFWorkbook.java:652)
更新:

我切换到XSSF,现在至少没有运行时异常。图纸数据是克隆的,但不是图表(它们不存在于克隆的图纸中)


是否有人成功克隆了带有图表的工作表?或者可能有人有其他想法如何解决我们遇到的问题,即使用POI为动态数量的工作表生成excel图表

我的解决方案非常复杂:

  • 我通过Excel宏使用模板图表生成大量工作表(例如1000张)
  • 我使用ApachePOI向任意数量的工作表输入数据(并使用图表使用的命名范围进行操作)
  • 我使用ApachePOI将所需数量的工作表重命名为所需的名称(因此我仅限于HSSF,因为XSSF在重命名工作表之后不会更新Excel中的命名范围引用:-()
  • 我用ApachePOI删除了其余的工作表

  • 实现这一概念上简单且通用的用例(即使用图表导出到Excel)是一项认真的工作但至少这是可能的,而且它运行得很好。

    您使用的是什么版本的POI?@Gagravarr我使用的是3.7。我还切换到3.8 beta 5一段时间,检查它是否在3.8中得到修复,但在3.17中仍然不起作用