zoukankan      html  css  js  c++  java
  • 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—

  • 相关阅读:
    FreeBSD使用多线程下载工具axel
    类UNIX系统基础:文件安全与权限
    基于pf防火墙控制IP连接数
    在FreeBSD下搭建高性能企业级网关与代理服务器
    搭建自己的CVSup服务器
    转:Spring技术内幕——深入解析Spring架构与设计原理(三)IOC实现原理
    Spring Web MVC的实现(二)
    java中HashSet详解
    转:Spring技术内幕——深入解析Spring架构与设计原理(二)IOC实现原理
    DIV垂直水平都居中
  • 原文地址:https://www.cnblogs.com/Yesi/p/15151124.html
Copyright © 2011-2022 走看看