问题标签 [xslf]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
apache-poi - 创建新的幻灯片版式并从其他 powerpoint 幻灯片版式复制内容
这是我的用例:
我有两个 powerpoint 文件。我想将所有幻灯片模板从一个 powerpoint 复制到另一个。我在 MasterSlide 中找不到像 createTemplate() 这样的 API,所以为了做到这一点,我使用模板之一(存在于同一个 powerpoint 中)PackagePart 创建一个新的 XSLFSlideLayout,然后使用 importContent() 来复制来自其他 powerpoint 的模板。这是它的简短版本:
调用 importContent 时它会中断:
java.lang.IllegalStateException:找不到名称的 SlideMaster:/ppt/slideLayouts/slideLayout1.xml - 内容类型:org.apache.poi.xslf.usermodel.XSLFSlideLayout 的 application/vnd.openxmlformats-officedocument.presentationml.slideLayout+xml .getSlideMaster(XSLFSlideLayout.java:98) at org.apache.poi.xslf.usermodel.XSLFSlideLayout.getMasterSheet(XSLFSlideLayout.java:105) at org.apache.poi.xslf.usermodel.XSLFSlideLayout.getMasterSheet(XSLFSlideLayout.java:36 ) 在 org.apache.poi.xslf.usermodel.XSLFSimpleShape.getXfrm(XSLFSimpleShape.java:133) 在 org.apache.poi 的 org.apache.poi.xslf.usermodel.XSLFShape.fetchShapeProperty(XSLFShape.java:307)。 org.apache.poi.xslf.usermodel.XSLFShape.copy(XSLFShape.java:137) 在 org.apache.poi.xslf 中的 xslf.usermodel.XSLFShape.setAnchor(XSLFSimpleShape.java:169)。org.apache.poi.xslf.usermodel.XSLFTextShape.copy(XSLFTextShape.java:588) 中的 usermodel.XSLFSimpleShape.copy(XSLFSimpleShape.java:711) org.apache.poi.xslf.usermodel.XSLFSheet.importContent(XSLFSheet.爪哇:372)
我正在使用 poi-3.15。任何线索都会有很大帮助。
apache-poi - 如何使用 apache poi 检索 pptx 幻灯片名称
Powerpoint 幻灯片具有可通过 VBA 访问和修改的内部名称。参见例如Powerpoint:手动设置幻灯片名称
我想通过 apache poi 访问该名称。我试过了:
但如果幻灯片名称只有默认名称,则只能以这种方式获取空字符串。
在 Apache POI 中获取(甚至设置)pptx 文件的幻灯片名称的正确方法是什么?
java - 使用 apache poi 有项目符号点时更正文本对齐
我正在使用 apache poi xslf 创建一个文本框,然后在其中添加一个项目符号点。问题是当项目符号点是多行文本时,它会像这样添加
- 文本分析、nGram、朴素贝叶斯文本分类器,用于识别对话的性质、情绪和投诉风险
在上面的项目符号对话中应该与项目符号行中的单词文本对齐,即像这样的文本对齐
- 文本分析、nGram、朴素贝叶斯文本分类器,用于识别
对话情绪的性质和投诉风险。
以下是代码
任何帮助表示赞赏。谢谢。
java - java - 带有多个图表的 Apache POI 绘图区
我正在尝试使用 PowerPoint 文件作为模板来生成另一个替换购物车数据的 powerpoint。为了使模板的外观尽可能相似,我只是尝试替换我需要替换的数据,从CT*Ser
图表的第一个复制所有其他数据。当绘图区域内只有一个图表时,大多数图表(目前我对饼图、条形图和折线图感兴趣)都可以正常工作。
当绘图区域有多个图表时(在我的例子中,一个有多个系列的 BarChart 和一个只有一个的 LineChart),看起来有问题,Microsoft PowerPoint 无法打开文件或其中的一部分,因为它似乎是被管理的。
为此,我为每个图表和图表类型执行以下代码(图表是我用来在模板文件中保留引用的对象)。
总结:
- 克隆第一个 CT*Ser;
- 替换idx、order和tx;
- 如果 CT*Ser 具有内部带有 DLbl 标记的 DLbl,我将删除 DLbl,然后将它们添加,并将 delete 设置为 true;
- 修改猫;
- 如果类别都是数值,我使用 NumRefs,否则使用 StrRefs;
- 修改值;
- 删除以前的系列
我也更改了支持 Excel 资源,仅使用构建图表的数据(绘图区域中每个图表一张)。我也检查了对单元格和单元格范围的引用,它们没问题。
我使用以下软件检查了生成的文件,并报告了结果:
- Libre Office(按我的预期工作)
- Onlyoffice(有效,但似乎不支持每个绘图区域的多个图表?)
- Microsoft Powerpoint 桌面(打开文件时出错,尝试恢复,但失败并且不会从错误的幻灯片上加载幻灯片内容)
- Microsoft Powerpoint online(不打开文件)
是否有一种相对简单的方法来验证 powerpoint 文件并找到阻止文件与 Powerpoint 一起使用的错误?有什么方法可以可靠地诊断这些问题吗?在Linux上工作?
模板文件已使用 Powerpoint 创建。如果我不报告软件版本,我很抱歉,但我不记得它们(Powerpoint 不在我的电脑上)。
请帮助我了解问题所在,因为我实际上开始感到愚蠢。任何建议将不胜感激。太感谢了。
java - 我正在尝试更改幻灯片中折线图的值,但无法使用 POI
我正在使用 Apache POI 4.01 并尝试使用带有单个折线图作为模板的 powerpoint 幻灯片,然后使用它来生成图表中包含一些不同值的新幻灯片,但我得到的是相同的幻灯片复制而没有任何值更改. 请帮忙。
我正在使用PowerPoint幻灯片中的简单折线图尝试以下代码。
没有错误但图表值保持不变,实际需要的结果是具有不同值的折线图。
java - 使用 Apache Poi 从头开始创建图表的问题
当我从头开始创建图表并将其添加到使用 Apache Poi 的 PowerPoint 中的幻灯片时,XSLFGraphicFrame
会创建相应的形状并将其添加到 XML 中,但它不会添加到getShapes()
幻灯片中的列表中,其他情况会正确发生形状类型,有没有办法将依赖树提升到GraphicalFrame
并获取相应的XSLFShape
对象并手动添加它?
示例:
假设我有一个XMLSlideShow
我们称之为 ppt 的对象,ppt 有一个XSLFSLide
对象表示它在第一个位置的幻灯片。所以现在这张幻灯片有一些形状。假设这些是 2 个 XSLFTextBox,我们可以使用方法对其进行迭代getShapes()
。
因此,如果我们从头开始创建图表:
但是,如果我们遍历 XML 对象 bean,我们实际上可以找到似乎没有添加到 getShapes 列表中的图形框架对象。
如何通过首先获取相应的形状来手动执行此操作?
编辑:我设法通过变通方法解决了这个问题,因为编辑源代码和用 ant+gradle 等重建 lib 的工作量太大。ppt 可以从流中加载,这是通过读取 xml 来完成的文件,它正确列出了图形框架。我在 ByteArrayOutputStream 中编写了 ppt 并从字节数组的输入流中重新加载它;这解决了问题。
java - 调整 XSLFChart 的大小
XSLFChart
在 a上创建 a时XSLFSlide
,我似乎无法使锚定按预期工作。我生成图表如下
但是当我打开 Powerpoint 时,图表在左上角被卷起,就好像它被Rectangle
一个高度和宽度为 0 的 at (0, 0) 锚定。使用函数的另一个重载创建图表 ( addChart(XSLFChart)
) 也在角落创建它,但有一些高度和宽度。
java - XSLF :- 在 PPT 中嵌入 excel 文件
我可能会在这里问一个重复的问题。我阅读了有关 OLE 嵌入的多个答案,但无法为我的问题找到正确的解决方案。
我的问题 我想创建一个 PPTX 文件并将 excel 嵌入其中一张幻灯片。我找到了嵌入文件的 HSLF 解决方案,但它不适用于 Office 2016。所以我正在寻找一些使用 XSLF 将文件嵌入和 excel 文件到 PPTX 幻灯片的解决方案。
我们可以使用 HSLF 创建/修改 PPTX 演示文稿吗?
java - 如何从 apache poi XSLF 获取文本框的线宽?
从 pptx 文件中获取带有 apache poi 5.0.0 的简单文本框的线宽的正确方法是什么?我用 maven apache poi、poi-ooxml 和 poi-scratchpad 创建了一个小项目。
当我创建一个test.pptx
用三个文本框命名的 pptx 时
- 无边框(宽度为 0.0)
- 默认边框(宽度为 0.75)
- 宽度为 2.0 的边框
然后以下代码输出
- 无边界:
line: 0.0, null
- 默认:
line: 0.0, java.awt.Color[r=91,g=155,b=213]
- 边框 2.0:
line: 2.0, java.awt.Color[r=91,g=155,b=213]
在文档中说宽度0.0
是没有边界的。但是,当两者都返回时,我如何区分无边框和默认边框0.0
。这不应该从颜色为空。