我想将现有的excel-table添加到幻灯片中。使用oleObjectBinaryPart
成功地将excel-file添加到表示中。现在我想用下面的xml代码将它添加到幻灯片中...
<p:graphicFrame 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">
<p:nvGraphicFramePr>
<p:cNvPr id="3" name="Objekt 2"/>
<p:cNvGraphicFramePr>
<a:graphicFrameLocks noChangeAspect="1"/>
</p:cNvGraphicFramePr>
<p:nvPr>
<p:extLst>
<p:ext uri="{D42A27DB-BD31-4B8C-83A1-F6EECF244321}">
<p14:modId xmlns:p14="http://schemas.microsoft.com/office/powerpoint/2010/main"
val="3436193848"/>
</p:ext>
</p:extLst>
</p:nvPr>
</p:nvGraphicFramePr>
<p:xfrm>
<a:off x="1524000" y="1433513"/>
<a:ext cx="6096000" cy="3989387"/>
</p:xfrm>
<a:graphic>
<a:graphicData uri="http://schemas.openxmlformats.org/presentationml/2006/ole">
<mc:AlternateContent xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006">
<mc:Choice xmlns:v="urn:schemas-microsoft-com:vml" Requires="v">
<p:oleObj spid="_x0000_s1026" name="Arbeitsblatt" r:id="${OLEObjectRid}" imgW="18573822"
imgH="12154029" progId="Excel.Sheet.12">
<p:embed/>
</p:oleObj>
</mc:Choice>
<mc:Fallback>
<p:oleObj name="Arbeitsblatt" r:id="${OLEObjectRid}" imgW="18573822" imgH="12154029"
progId="Excel.Sheet.12">
<p:embed/>
<p:pic>
<p:nvPicPr>
<p:cNvPr id="0" name=""/>
<p:cNvPicPr/>
<p:nvPr/>
</p:nvPicPr>
<p:blipFill>
<a:blip r:embed="${ImageId}"/>
<a:stretch>
<a:fillRect/>
</a:stretch>
</p:blipFill>
<p:spPr>
<a:xfrm>
<a:off x="1524000" y="1433513"/>
<a:ext cx="6096000" cy="3989387"/>
</a:xfrm>
<a:prstGeom prst="rect">
<a:avLst/>
</a:prstGeom>
</p:spPr>
</p:pic>
</p:oleObj>
</mc:Fallback>
</mc:AlternateContent>
</a:graphicData>
</a:graphic>
</p:graphicFrame>
...使用下面几行Java代码:
OleObjectBinaryPart olePart;
Relationship relOleObject = null;
BinaryPartAbstractImage imagePart = null;
// OleObject
try {
olePart = new OleObjectBinaryPart(new PartName("/ppt/embeddings/Microsoft_Office_Excel_Worksheet1.xlsx"));
// get the excel-file
olePart.setBinaryData(getXlsxAsInputStream());
relOleObject = presentationMLPackage.getMainPresentationPart().addTargetPart(olePart);
} catch (InvalidFormatException e) {
log.error("Could not create OlePart. ", e);
e.printStackTrace();
}
// Preview image
InputStream inputStream = this.getClass().getResourceAsStream("/images/beispielbild_gross1.jpg");
byte[] bytes;
try {
bytes = IOUtils.toByteArray(inputStream);
imagePart = BinaryPartAbstractImage.createImagePart(presentationMLPackage, slidePart, bytes);
} catch (IOException e) {
log.error("Could not convert image to byte[]. ", e);
} catch (Exception e) {
log.error("Could not add image to presentation. ", e);
}
// The image the user sees, that they click on to open the object
Relationship relImage = null;
try {
relImage = presentationMLPackage.getMainPresentationPart().addTargetPart(imagePart);
} catch (InvalidFormatException e) {
e.printStackTrace();
}
// get content of xml-file
String ml = readFile("/xml/oleObject.xml");
java.util.HashMap<String, String> mappings = new java.util.HashMap<String, String>();
mappings.put("ImageId", relImage.getId());
mappings.put("OLEObjectRid", relOleObject.getId());
try {
CTGraphicalObjectFrame sample = (CTGraphicalObjectFrame) XmlUtils.unmarshallFromTemplate(ml, mappings, Context.jcPML, CTGraphicalObjectFrame.class);
slidePart.getContents().getCSld().getSpTree().getSpOrGrpSpOrGraphicFrame().add(sample);
} catch (JAXBException e) {
log.error("Could not add content to slide.", e);
}
在这种情况下,您需要给JAXB一个提示:
import javax.xml.bind.JAXBContext;
import javax.xml.bind.Unmarshaller;
import org.docx4j.XmlUtils;
import org.pptx4j.jaxb.Context;
import org.pptx4j.pml.CTGraphicalObjectFrame;
public class FileToPML {
public static void main(String[] args) throws Exception {
String inputfilepath = System.getProperty("user.dir") + "/pml.xml";
java.io.FileInputStream fin = new java.io.FileInputStream(inputfilepath);
// Create Unmarshaller
JAXBContext jc = Context.jcPML;
Unmarshaller u = jc.createUnmarshaller();
u.setEventHandler(new org.docx4j.jaxb.JaxbValidationEventHandler());
// Unmarshall, giving JAXB a hint
Object o = u.unmarshal(new javax.xml.transform.stream.StreamSource(fin),
CTGraphicalObjectFrame.class);
// Prove it worked
System.out.println(o.getClass().getName());
System.out.println(XmlUtils.marshaltoString(o, Context.jcPML));
}
}
问题内容: 如何将POJO映射到几个JSON表示形式? 我正在使用杰克逊。 我想要下面的代码 杰克逊该怎么做?或还有哪些其他图书馆可以做到这一点? 问题答案: 您使用JSON视图 请注意,这些是 包容性 而非排他性;您创建一个包含所需字段的视图。
问题内容: 我想将先前从其他文件(已经完成)中提取的一系列文件添加到jar中。这些文件将覆盖JAR中的文件。最有效的方法是什么?我需要它快。谢谢! 问题答案: 请记住,JAR文件是ZIP文件。 只需使用一些ZIP库。
5. 文档添加与演示 在“讲课模式”中,讲师可提取云端的文档,或添加本地图片作为课件演示。 5.1. 文档提取 云端会自动保存 Web 端上课时使用的课堂文档,讲师使用 APP 时可从云端提取下载。进入菜单栏,选择文档库,提取对应的文档。 5.2. 上传图片 进入菜单栏,选择上传图片,讲师可添加手机本地图片作为演示文档。 5.3. 文档演示 在横屏模式下,讲师在文档演示中可预览、查看用户列表、使用
5. 文档添加与演示 5.1. 文档添加 点击“文档库”,选择本地文档进行上传。上传完成后会进行格式转换,若文档较大处理时间会略长,请耐心等待。云端将保留本次课堂使用的文档,下次上课时会自动添加。文档库支持添加多个演示文档,点击文档库切换演示文档。支持 .doc、.docx、.ppt、.pptx、.pdf、.jpg 文件类型。 注意:如果PPT需要展示动画效果,上传的时候需要勾选PPT动画选项。
问题内容: 我是redux反应开发的初学者。我想知道什么是演示组件和容器组件。 如何将组件分类为Presentational或Container? 两者有什么区别? 这样对组件进行分类有什么好处? 问题答案: 您会发现您的组件更容易重用,并考虑将它们分为两类。我称它们为容器和演示组件。 我假设您已经了解Redux架构 容器组件 意识到redux 订阅Redux状态 派遣到redux动作 由reac
有没有人知道如何使用Apache POI在powerpoint模板(ppxt)中为文本(文本大纲)添加大纲?到目前为止,我收集到的是XSLFTextRun类没有方法来给定run元素的文本大纲。 因此,我只能保留以下字体/文本样式: 可以添加文字大纲吗? 任何帮助/建议将不胜感激。