• Java 在PPT中插入OLE对象


    PPT幻灯片中支持将文档作为OLE对象插入到PPT幻灯片指定位置,在幻灯片中可直接点击该对象,打开或编辑等。下面以插入Excel工作簿文档为例,介绍如何来插入到幻灯片。

     

    程序运行环境

    编译环境:IDEA(jdk 1.8.0)

    测试文档:Excel 2013(.xlsx)、Power Point(.pptx)

    Office Jar包:Free Spire.Office for Java 3.9.0

     关于如何导入jar,参考如下步骤:

    导入效果:

    Java示例代码

    import com.spire.presentation.FileFormat;
    import com.spire.presentation.drawing.IImageData;
    import com.spire.xls.*;
    import com.spire.presentation.*;
    
    import javax.imageio.ImageIO;
    import java.awt.*;
    import java.awt.image.BufferedImage;
    import java.io.File;
    import java.io.FileInputStream;
    
    
    public class AddOLE {
        public static void main(String[] args) throws Exception {
            //新建PowerPoint文档
            Presentation ppt = new Presentation();
    
            //加载Excel文档,将指定单元格数据保存为图片
            Workbook workbook = new Workbook();
            workbook.loadFromFile("test.xlsx");
            Worksheet sheet = workbook.getWorksheets().get(0);
            sheet.saveToImage("image.png",1,1,8,7);//将指定单元格数据范围保存为图片
    
            //加载保存的表格图片(作为OLE对象图标)
            File file = new File("image.png");
            BufferedImage image = ImageIO.read(file);
            IImageData oleImage = ppt.getImages().append(image);
            Rectangle rec = new Rectangle(120, 30, image.getWidth()/2, image.getHeight()/2);
    
            //将Excel数据保存到流
            File oldFile = new File("test.xlsx");
            FileInputStream inputStream = new FileInputStream(oldFile);
            byte[] data = new byte[(int)oldFile.length()];
            inputStream.read(data,0,data.length);
    
            //将Excel文档作为OLE对象插入到幻灯片
            IOleObject oleObject = ppt.getSlides().get(0).getShapes().appendOleObject("excel", data, rec);
            oleObject.getSubstituteImagePictureFillFormat().getPicture().setEmbedImage(oleImage);
            oleObject.setProgId("Excel.Sheet.12");
    
            //保存文档
            ppt.saveToFile("EmbedExcelAsOLE.pptx", FileFormat.PPTX_2013);
            inputStream.close();
        }
    }

    OLE对象添加结果:

    —End—

  • 相关阅读:
    (三)索引分区知识详解
    (二)SQL Server分区创建过程
    (一)SQL Server分区详解Partition(目录)
    表格重新加载 where 携带上次值问题
    MongoDB 时差问题问题
    WebAPI跨域处理
    Http请求中 content-type 和 dataType 区别
    那些坑
    微信公众平台开发系列一 ~ 接入前的配置工作
    MVC中登录页图片验证码总结
  • 原文地址:https://www.cnblogs.com/Yesi/p/15151124.html
Copyright © 2020-2023  润新知