如果我通过构造函数XSSFWorkbook()创建XSSFWorkbook (),是否可以创建空主题?我可以创造新的主题,但不是完全的。我可以在文件content_types.xml和/xl/_rels/workbook.xml.rels中创建两个条目:
XSSFWorkbook xssfWorkbook = new XSSFWorkbook();
POIXMLDocumentPart docThemePart = xssfWorkbook.createRelationship(XSSFRelation.THEME, XSSFFactory.getInstance(), 1);通常,这在ApachePOI中是不可能的,因为它会导致错误。我不得不修改(!)ApachePOI ThemesTable类-我添加了构造函数:
public ThemesTable() { super(); }然后,上面的函数也会创建文件/xl/ Then /eme1.xml,但它是空的。如何填写这份文件?如果我有主题
ThemesTable theme = (ThemesTable) docThemePart;并且改变它,内容不会写到theme.xml。如何填写这份文件?我检查了Zip创建。ZipPartMarshaller类中的marshall()方法从一些工作簿部分获取输入流。对于主题输入流是空的。也许这就是问题所在?当我尝试(用于测试)创建其他对象时:
xssfWorkbook.createRelationship(XSSFRelation.CHART, XSSFFactory.getInstance());一切都很好。
现在该怎么办?
发布于 2015-07-22 00:07:37
您还需要重写commit方法
最简单的方法是获取一个最近的夜间构建(直到3.13beta 2发布),然后使用StylesTable.ensureThemesTable()方法为您添加一个空主题表
https://stackoverflow.com/questions/31539873
复制相似问题