61 lines
2.5 KiB
Java
61 lines
2.5 KiB
Java
package com.awspaas.user.bpa;
|
||
|
||
import com.actionsoft.sdk.local.SDK;
|
||
import com.awspaas.user.bpa.util.PptCreateUtil;
|
||
import com.spire.presentation.*;
|
||
import com.spire.presentation.drawing.IImageData;
|
||
import com.spire.xls.Workbook;
|
||
import com.spire.xls.Worksheet;
|
||
import org.apache.commons.io.IOUtils;
|
||
import org.apache.poi.hslf.extractor.PowerPointExtractor;
|
||
import org.apache.poi.sl.usermodel.PictureData;
|
||
import org.apache.poi.xslf.usermodel.*;
|
||
import org.openxmlformats.schemas.drawingml.x2006.main.CTRegularTextRun;
|
||
import org.openxmlformats.schemas.drawingml.x2006.main.CTTextBody;
|
||
import org.openxmlformats.schemas.drawingml.x2006.main.CTTextParagraph;
|
||
import org.openxmlformats.schemas.presentationml.x2006.main.CTGroupShape;
|
||
import org.openxmlformats.schemas.presentationml.x2006.main.CTShape;
|
||
import org.openxmlformats.schemas.presentationml.x2006.main.CTSlide;
|
||
|
||
import javax.imageio.ImageIO;
|
||
import java.awt.*;
|
||
import java.awt.image.BufferedImage;
|
||
import java.io.File;
|
||
import java.io.FileInputStream;
|
||
import java.io.IOException;
|
||
import java.util.ArrayList;
|
||
import java.util.List;
|
||
public class test {
|
||
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();
|
||
}
|
||
|
||
} |