gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-04 20:14:19 28 4
gpt4 key购买 nike

如果我通过构造函数 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/theme/theme1.xml,但它是空的。这个文件怎么填?如果我得到主题
ThemesTable theme = (ThemesTable) docThemePart;

并更改它,内容不会写入theme.xml。这个文件怎么填?
我检查了 Zip 创建。 ZipPartMarshaller 类中的方法 marshall() 从某些工作簿部分获取输入流。对于主题输入流是空的。也许这就是问题所在?当我尝试(用于测试)创建其他对象时:
xssfWorkbook.createRelationship(XSSFRelation.CHART, XSSFFactory.getInstance());

一切都很好。

现在要做什么?

最佳答案

您需要覆盖 commit方法也

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

关于xml - 无法在新的 ApachePOI XSSFWorkbook 中简单地创建主题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31539873/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com