首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法简单地在新的ApachePOI XSSFWorkbook中创建主题

无法简单地在新的ApachePOI XSSFWorkbook中创建主题
EN

Stack Overflow用户
提问于 2015-07-21 13:05:39
回答 1查看 284关注 0票数 2

如果我通过构造函数XSSFWorkbook()创建XSSFWorkbook (),是否可以创建空主题?我可以创造新的主题,但不是完全的。我可以在文件content_types.xml和/xl/_rels/workbook.xml.rels中创建两个条目:

代码语言:javascript
复制
XSSFWorkbook xssfWorkbook = new XSSFWorkbook();
POIXMLDocumentPart docThemePart = xssfWorkbook.createRelationship(XSSFRelation.THEME, XSSFFactory.getInstance(), 1);

通常,这在ApachePOI中是不可能的,因为它会导致错误。我不得不修改(!)ApachePOI ThemesTable类-我添加了构造函数:

代码语言:javascript
复制
public ThemesTable() { super(); }

然后,上面的函数也会创建文件/xl/ Then /eme1.xml,但它是空的。如何填写这份文件?如果我有主题

代码语言:javascript
复制
ThemesTable theme = (ThemesTable) docThemePart;

并且改变它,内容不会写到theme.xml。如何填写这份文件?我检查了Zip创建。ZipPartMarshaller类中的marshall()方法从一些工作簿部分获取输入流。对于主题输入流是空的。也许这就是问题所在?当我尝试(用于测试)创建其他对象时:

代码语言:javascript
复制
xssfWorkbook.createRelationship(XSSFRelation.CHART, XSSFFactory.getInstance());

一切都很好。

现在该怎么办?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-07-22 00:07:37

您还需要重写commit方法

最简单的方法是获取一个最近的夜间构建(直到3.13beta 2发布),然后使用StylesTable.ensureThemesTable()方法为您添加一个空主题表

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31539873

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档