Jett:Excel Java模板:克隆包含图表的工作表

Jett:Excel Java模板:克隆包含图表的工作表,java,apache-poi,jett,Java,Apache Poi,Jett,我在Jett用户邮件列表上发布了此消息,但一个多月内没有回复 问题是 我看到在你的网站上你有:每工作表的bean/克隆工作表 如果模板工作表包含Excel图表,当Jett克隆该模板工作表时,它是否完全复制工作表上的所有内容,包括图表?Jett依赖Apache POI执行所有电子表格操作。要复制模板工作表,它将调用。这种方法似乎尽其所能地复制所有内容,但它根本无法很好地复制图表。我使用“特定于工作表的bean”和工作表上的图表进行测试,以在模板工作表中进行克隆。我测试了.xls和.xlsx模板,

我在Jett用户邮件列表上发布了此消息,但一个多月内没有回复

问题是 我看到在你的网站上你有:每工作表的bean/克隆工作表


如果模板工作表包含Excel图表,当Jett克隆该模板工作表时,它是否完全复制工作表上的所有内容,包括图表?

Jett依赖Apache POI执行所有电子表格操作。要复制模板工作表,它将调用。这种方法似乎尽其所能地复制所有内容,但它根本无法很好地复制图表。我使用“特定于工作表的bean”和工作表上的图表进行测试,以在模板工作表中进行克隆。我测试了.xls和.xlsx模板,并尝试了ApachePOI3.9、3.10和3.11。我使用了JETT的最新版本,在撰写本文时是0.9.0

无论使用何种版本的ApachePOI,结果都是相同的。根据使用的是.xls(HSSF)还是.xlsx(XSSF),结果有所不同,但无论哪种方法,结果都不好

  • .xls转换:
当调用
cloneSheet
方法时,我从Apache POI得到一个
RuntimeException

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:73)
at org.apache.poi.hssf.model.InternalSheet.cloneSheet(InternalSheet.java:418)
at org.apache.poi.hssf.usermodel.HSSFSheet.cloneSheet(HSSFSheet.java:142)
at org.apache.poi.hssf.usermodel.HSSFWorkbook.cloneSheet(HSSFWorkbook.java:749)
at org.apache.poi.hssf.usermodel.HSSFWorkbook.cloneSheet(HSSFWorkbook.java:100)
at net.sf.jett.transform.ExcelTransformer.transform(ExcelTransformer.java:549)
此异常阻止生成结果电子表格

  • .xlsx转换:
调用
cloneSheet
成功,但生成的电子表格损坏。当我在Excel中打开电子表格时,它会抱怨“内容不可读”,并从每个克隆的工作表中删除图表对象(原始工作表除外)。如果原始工作表的名称不变,则该图表将保持完整。但是,如果原始模板工作表的名称发生更改,则图表的系列引用不会更改,并且会丢失

不幸的是,杰特对此无能为力;这是一个Apache POI问题。当ApachePOI为图表创建API支持时,希望这会有所改进。您可以随意在中添加新的bug