qq_45866015 2023-09-06 10:50 采纳率: 97.6%
浏览 2
已结题

java插入嵌入对象

Java往docx中插入excel嵌入对象,由文件创建并显示为图标,用的是5.0.0的POI。有什么可以参考的代码吗,网上找了一圈没找到。

  • 写回答

2条回答 默认 最新

  • qq_37749055 2023-09-06 10:55
    关注

    要使用POI库将Excel嵌入到docx文件中并显示为图标,您可以按照以下步骤进行操作:

    1. 导入所需的POI库:
    import org.apache.poi.xwpf.usermodel.*;
    import org.apache.poi.util.*;
    import org.apache.poi.openxml4j.exceptions.*;
    import java.io.*;
    
    1. 创建一个空的docx文档:
    XWPFDocument document = new XWPFDocument();
    
    1. 创建一个嵌入的对象,并将其保存为临时文件:
    String excelPath = "path/to/your/excel/file.xlsx";
    File tempFile = File.createTempFile("poi-example", ".tmp");
    FileUtils.copyFile(new File(excelPath), tempFile);
    
    1. 创建一个嵌入的对象并将其添加到文档中:
    XWPFParagraph paragraph = document.createParagraph();
    XWPFRun run = paragraph.createRun();
    run.addPicture(new FileInputStream(tempFile), XWPFDocument.PICTURE_TYPE_XLSX, tempFile.getName(), Units.toEMU(50), Units.toEMU(50)); // 设置图片的宽度和高度为50x50像素
    run.setText("Excel嵌入对象"); // 添加描述文本
    run.addBreak(); // 添加换行符
    
    1. 将文档保存为docx文件:
    FileOutputStream out = new FileOutputStream("path/to/your/output/file.docx");
    document.write(out);
    out.close();
    

    完整的示例代码如下:

    import org.apache.poi.xwpf.usermodel.*;
    import org.apache.poi.util.*;
    import org.apache.poi.openxml4j.exceptions.*;
    import java.io.*;
    import org.apache.commons.io.*;
    
    public class DocxExcelEmbeddedExample {
        public static void main(String[] args) throws IOException, DocumentException {
            XWPFDocument document = new XWPFDocument();
            String excelPath = "path/to/your/excel/file.xlsx";
            File tempFile = File.createTempFile("poi-example", ".tmp");
            FileUtils.copyFile(new File(excelPath), tempFile);
            XWPFParagraph paragraph = document.createParagraph();
            XWPFRun run = paragraph.createRun();
            run.addPicture(new FileInputStream(tempFile), XWPFDocument.PICTURE_TYPE_XLSX, tempFile.getName(), Units.toEMU(50), Units.toEMU(50)); // 设置图片的宽度和高度为50x50像素
            run.setText("Excel嵌入对象"); // 添加描述文本
            run.addBreak(); // 添加换行符
            FileOutputStream out = new FileOutputStream("path/to/your/output/file.docx");
            document.write(out);
            out.close();
            System.out.println("Docx文件已创建成功!");
        }
    }
    

    请确保将path/to/your/excel/file.xlsx替换为您实际的Excel文件路径,并将path/to/your/output/file.docx替换为您希望创建的docx文件的路径。运行此示例代码后,您将创建一个包含Excel嵌入对象的docx文件,并在文件中显示为图标。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 11月13日
  • 已采纳回答 11月5日
  • 创建了问题 9月6日

悬赏问题

  • ¥15 odoo17处理受托加工产品
  • ¥15 如何用MATLAB编码图三的积分
  • ¥15 为什么我安装了Homebrew之后,无法像官网的那样通过执行命令安装Watchman
  • ¥15 圆孔衍射光强随孔径变化
  • ¥15 MacBook pro m3max上用vscode运行c语言没有反应
  • ¥15 ESP-PROG配置错误,ALL ONES
  • ¥15 结构功能耦合指标计算
  • ¥50 AI大模型精调(百度千帆、飞浆)
  • ¥15 非科班怎么跑代码?如何导数据和调参
  • ¥15 福州市的全人群死因监测点死亡原因报表