- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我正在努力在 apache POI 中创建部分。我希望能够用幻灯片定义部分,我该如何做到这一点?到目前为止,我可以毫无问题地添加幻灯片。
这是保存为 XML 的演示文稿的 PowerPoint 部分,您可以在其中查看各部分的存储方式:
<pkg:part pkg:name="/ppt/presentation.xml" pkg:contentType="application/vnd.openxmlformats-officedocument.presentationml.presentation.main+xml">
<pkg:xmlData>
<p:presentation xmlns:a="http://schemas.openxmlformats.org/drawingml/2006/main" xmlns:r="http://schemas.openxmlformats.org/officeDocument/2006/relationships" xmlns:p="http://schemas.openxmlformats.org/presentationml/2006/main" showSpecialPlsOnTitleSld="0" embedTrueTypeFonts="1" saveSubsetFonts="1">
(... cut out unrelevant nodes...)
<p:sldIdLst>
<p:sldId id="296" r:id="rId10"/>
<p:sldId id="312" r:id="rId11"/>
<p:sldId id="274" r:id="rId12"/>
<p:sldId id="311" r:id="rId13"/>
<p:sldId id="275" r:id="rId14"/>
<p:sldId id="276" r:id="rId15"/>
<p:sldId id="317" r:id="rId16"/>
<p:sldId id="313" r:id="rId17"/>
<p:sldId id="318" r:id="rId18"/>
<p:sldId id="319" r:id="rId19"/>
<p:sldId id="307" r:id="rId20"/>
<p:sldId id="314" r:id="rId21"/>
<p:sldId id="315" r:id="rId22"/>
<p:sldId id="321" r:id="rId23"/>
<p:sldId id="320" r:id="rId24"/>
<p:sldId id="308" r:id="rId25"/>
<p:sldId id="322" r:id="rId26"/>
<p:sldId id="303" r:id="rId27"/>
<p:sldId id="264" r:id="rId28"/>
<p:sldId id="300" r:id="rId29"/>
<p:sldId id="287" r:id="rId30"/>
<p:sldId id="309" r:id="rId31"/>
<p:sldId id="289" r:id="rId32"/>
</p:sldIdLst>
<p:extLst>
<p:ext uri="{521415D9-36F7-43E2-AB2F-B90AF26B5E84}">
<p14:sectionLst xmlns:p14="http://schemas.microsoft.com/office/powerpoint/2010/main">
<p14:section name="Default Section" id="{F7FF9A22-6035-4F7F-86B4-79EDB5AF0A91}">
<p14:sldIdLst>
<p14:sldId id="296"/>
</p14:sldIdLst>
</p14:section>
<p14:section name="PPT section example" id="{376F793D-518A-4B6E-AAA6-8CD5D37CFC8B}">
<p14:sldIdLst>
<p14:sldId id="312"/>
<p14:sldId id="274"/>
<p14:sldId id="311"/>
<p14:sldId id="275"/>
<p14:sldId id="276"/>
<p14:sldId id="317"/>
<p14:sldId id="313"/>
<p14:sldId id="318"/>
<p14:sldId id="319"/>
<p14:sldId id="307"/>
<p14:sldId id="314"/>
<p14:sldId id="315"/>
<p14:sldId id="321"/>
<p14:sldId id="320"/>
<p14:sldId id="308"/>
<p14:sldId id="322"/>
<p14:sldId id="303"/>
<p14:sldId id="264"/>
<p14:sldId id="300"/>
<p14:sldId id="287"/>
<p14:sldId id="309"/>
<p14:sldId id="289"/>
</p14:sldIdLst>
</p14:section>
</p14:sectionLst>
</p:ext> (...more contents not relevant I guess ...)
有人知道如何在 Apache POI 中创建一个部分并向其添加幻灯片吗?之后如何附加多个部分和单个幻灯片?任何帮助表示赞赏。
最佳答案
好的,所以我管理了整个事情:)您需要创建一个像这样的默认部分:
CTExtensionList extensionsList = ppt.getCTPresentation().getExtLst();//create default section
CTExtension extension = extensionsList.insertNewExt(0);
extension.setUri("{521415D9-36F7-43E2-AB2F-B90AF26B5E84}");
Node ext = extension.getDomNode();
Element sectionLst = ext.getOwnerDocument().createElementNS(p14Xmlns, "p14:sectionLst");
sectionLst.setAttributeNS("http://www.w3.org/2000/xmlns/", "xmlns:p14", p14Xmlns);
ext.appendChild(sectionLst);
Element section = sectionLst.getOwnerDocument().createElementNS(p14Xmlns, "p14:section");
section.setAttribute("name", "Default section");
section.setAttribute("id", "{" + UUID.randomUUID().toString().toUpperCase() + "}");
Element sldIdLst = section.getOwnerDocument().createElementNS(p14Xmlns, "p14:sldIdLst");
section.appendChild(sldIdLst);
sectionLst.appendChild(section);
return sldIdLst;
然后您可以根据需要使用此方法创建其他部分:
私有(private)元素createSection(元素sldIdLst,节点父级) { 字符串节名 = ""; if (parent.getAttributes() != null && Parent.getAttributes().getNamedItem("title") != null) { sectionName =parent.getAttributes().getNamedItem("标题").getNodeValue(); } 节点sectionLst = sldIdLst.getParentNode().getParentNode();
Element section = sectionLst.getOwnerDocument().createElementNS(p14Xmlns, "p14:section");
section.setAttribute("name", sectionName);
section.setAttribute("id", "{" + UUID.randomUUID().toString().toUpperCase() + "}");
Element newSldIdLst = section.getOwnerDocument().createElementNS(p14Xmlns, "p14:sldIdLst");
section.appendChild(newSldIdLst);
sectionLst.appendChild(section);
sldIdLst = newSldIdLst;
return sldIdLst;
}
然后我必须手动将 XSLSlide 与 sldIdLst 关联起来,如下所示:
XSLFSlide slide = createSlideFromXml(parent, ppt);
if (slide != null)
{
List<CTSlideIdListEntry> sldIdList = ppt.getCTPresentation().getSldIdLst().getSldIdList();
long slideInternalId = 0;
for (CTSlideIdListEntry entry : sldIdList)
{
if (entry.getId2().equals(slide.getPackageRelationship().getId()))
{
slideInternalId = entry.getId();
break;
}
}
Element sldId = sldIdLst.getOwnerDocument().createElementNS("http://schemas.microsoft.com/office/powerpoint/2010/main", "p14:sldId");
sldId.setAttribute("id", String.valueOf(slideInternalId));
sldIdLst.appendChild(sldId);
}
我希望你能明白这个想法。
关于java - Apache POI XSLF 创建部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40301379/
我在使用 io-ts 时遇到一些问题。我发现它确实缺乏文档,我取得的大部分进展都是通过 GitHub issues 取得的。不,我不明白 HKT,所以没有帮助。 基本上,我在其他地方创建一个类型,ty
我必须创建一个正则表达式来搜索整个文件,以找到与 Java XML 解析器的第一部分(但不是第二部分)的匹配项。这将用于防止某些 XXE 攻击。不幸的是,它确实必须是单个正则表达式,并且它确实需要搜索
我有一些简单的 Shared/_Header.cshtml 文件中的内容。 My Shared/_Layout.cshtml 通过调用插入该代码 @Html.Partial("_Header") 目前
我有一个 if-else 语句,其中: 条件 1:ID 匹配并且自动填充某些字段。然后 if 语句只填充其余字段 条件 2:ID 不匹配,所有字段均为空白。 ELSE 语句将它们全部填充 当我使条件
我正在开发一个单页滚动网站。我正在尝试实现 ScrollMagic 并固定第一部分,以便网站的其余部分滚动到固定部分的顶部。我尝试创建一个 jsfiddle 来显示问题,但我似乎无法让 jsfiddl
这是我的情况: 我想使用 Google AdWords 的转换脚本,但出于某种原因,他们代码段的 javascript 部分在我的页面上添加了一些我似乎无法摆脱的不需要的空白。 所以我正在查看的选项纯
寻找一种优雅的方式在页面上添加一次脚本,就是这样。 我有一个需要 2 个 CSS 文件和 2 个 JS 文件的部分 View 。在大多数地方,只需要其中 1 个部分 View 。但在单个页面上,我需要
我想要一个网站,该网站始终具有相同的部分,具有相同的 id 以及我想要显示的所有内容。我对 javascript 不太了解,我想知道如何删除除特定部分之外的所有内容。 最好的方法是否是只执行一个循环来
SQL 语句教程 (11) Group By 我们现在回到函数上。记得我们用 SUM 这个指令来算出所有的 Sales (营业额)吧!如果我们的需求变成是要算出每一间店 (store_name)
我试图理解部分并认为我已经明白了。基本上,这是一种将部分应用程序应用于二元运算符的方法。所以我了解所有(2*) , (+1)等例子就好了。 但是在 O'Reilly Real World Haskel
有没有办法禁止在部分中覆盖给定的关键字参数?假设我要创建函数 bar总是有 a设置为 1 .在以下代码中: from functools import partial def foo(a, b):
我有这个使用节的 OpenMP 代码 #pragma omp parallel sections num_threads(8) { printf_s("Allo fro
我正在尝试重新创建 Apple 制作的有缺陷的 CNContactPickerViewController,因此我有一个数据数组 [CNContact],我需要将其整齐地显示在 UITableView
我有一个相对布局,其中包含一些 float 在 GridView 上的 TextView 。当我在网格中选择一个项目时,布局向下移动到屏幕的尽头,只有大约 1/5 的部分是可见的。这是使用简单的翻译动
我想在我的 tableView 中有两个部分。我希望将项目添加到第 0 节,然后能够选择一行以将其从第 0 节移动到第 1 节。到目前为止,我已将这些项目添加到第 0 节,但是当它关闭时数据不会加
我正在以自由职业者的身份开发支付控制软件,但我有一些关于 mysql 的问题。 。我有一个用作日志的表,名为“Bitacora”。在表中,我有一个名为 idCliente 的列,它是自己表中一个人的
我有一个 PFQueryTableViewController,我想向 tableview 添加部分,我这样尝试: - (PFQuery *)queryForTable { PFQuery *qu
我正在尝试编写一个查询,将部分匹配项与存储的名称值进行匹配。 我的数据库如下所示 Blockquote FirstName | Middle Name | Surname --------------
我正在开发一个语音备忘录应用程序,并且正在将文件保存到表格 View 中。我希望默认文件名显示为“新文件 1”,如果使用“新文件 1”,则它会显示为“新文件 2”,依此类推。 我正在尝试使用 do-w
我有以下简单的 HTML 布局 .section1 { background: red; } .section2 { background: green; } .section3 { ba
我是一名优秀的程序员,十分优秀!