关于免费docx4j社区版支持xlsx文件嵌入docx文档的技术咨询
关于docx4j社区版支持附加XLSX到DOCX的说明
- 免费的docx4j社区版完全支持将XLSX文件附加到DOCX文档,无论是在创建新DOCX时添加,还是对已有DOCX进行修改添加。
实现方式说明:
docx4j社区版提供两种常见的附件添加方案:
- 作为文档附属文件(无预览):通过
org.docx4j.openpackaging.parts.PartName和PackagePart类,将XLSX文件以二进制形式存入DOCX的OPC包结构中,这类附件仅作为文档的附属资源存在,不会在文档正文区域显示。 - 作为OLE嵌入对象(带预览):如果需要在DOCX内容中显示XLSX的预览内容,社区版也支持生成对应的OLE嵌入部件和内容控件,用户可在Word中直接双击打开编辑该XLSX文件。
核心逻辑代码示例:
// 创建新的DOCX文档包 WordprocessingMLPackage wordMLPackage = WordprocessingMLPackage.createPackage(); // 读取要附加的XLSX文件 File xlsxFile = new File("your/file/path.xlsx"); byte[] xlsxData = Files.readAllBytes(xlsxFile.toPath()); // 添加为附属文件(无预览) PartName attachmentPartName = new PartName("/attachments/data.xlsx"); BinaryPartAbstractImage xlsxAttachment = new BinaryPartAbstractImage(wordMLPackage, attachmentPartName); xlsxAttachment.setBinaryData(xlsxData); wordMLPackage.getMainDocumentPart().addTargetPart(xlsxAttachment); // 保存最终DOCX文件 wordMLPackage.save(new File("output_with_attachment.docx"));
上述所有功能均无需依赖docx4j商业版,社区版即可完全满足你的需求。
内容的提问来源于stack exchange,提问作者Sundaresan Sankaran
相关产品推荐
相关产品推荐

