apps/com.awspaas.user.bpa/src/com/awspaas/user/bpa/test.java
2023-07-27 16:34:15 +08:00

61 lines
2.5 KiB
Java
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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();
}
}