java中使用poi导出ppt(图片和表格)

在做项目中遇到一个需求,将职员的信息导出成一个形式固定的ppt文档,poi有许多方法可以实现,因为我是一名Java小白,于是便想用最简单的方法来实现,代码如下:
该需求需要用到poi的jar包:
https://download.csdn.net/download/weixin_42142057/10652136

public static void main(String[] args) throws IOException {         //创建PPT         SlideShow ppt = new SlideShow();          //设置ppt母版,也就是背景图片。         ppt.setPageSize(new Dimension(760,600));         SlideMaster master = ppt.getSlidesMasters()[0];         int picIndex =0;         try {             picIndex = ppt.addPicture(new File("c:/text.png"), Picture.PNG);         } catch (IOException e) {             e.printStackTrace();             throw new InfomationException("加载ppt背景图片失败"+e);         }         Picture background = new Picture(picIndex);         background.setAnchor(new Rectangle(0,0, ppt.getPageSize().width, ppt.getPageSize().height));         master.addShape(background);          //创建ppt的一张幻灯片         Slide newSlide = ppt.createSlide();          //职员所属单位         //创建一个文本框         TextBox orgTxt = new TextBox();         RichTextRun orgRichTextRun = orgTxt.getTextRun().getRichTextRuns()[0];         //赋值         orgRichTextRun.setText("ssdw");         //设置文本框在ppt中的位置         orgTxt.setAnchor(new Rectangle(90,30,400,30));         //将文本框加入到ppt         newSlide.addShape(orgTxt);          //个人照片         int pic =0;         try {             //bytes是图片的二进制码             pic = ppt.addPicture(bytes, Picture.PNG);         } catch (IOException e1) {             e1.printStackTrace();             throw new InfomationException("加载员工照片失败"+e1);         }         Picture staffPicture = new Picture(pic);         staffPicture.setAnchor(new Rectangle(60,80,180,180));         newSlide.addShape(staffPicture);          //个人信息框         TextBox personTxt = new TextBox();         RichTextRun personRichTextRun = personTxt.getTextRun().getRichTextRuns()[0];         personRichTextRun.setText("       "+personInfo);         personTxt.setAnchor(new Rectangle(20,280,300,180));         newSlide.addShape(personTxt);          //家庭情况-表格         //创建一个表格,并设置其行数和列数,我这里行数是随着不同职员的数据大小而变化的         Table familytable = new Table(familyInfos.size(),3);         //遍历行与列         for (int i =0; i < familyInfos.size(); i++) {             for (int j =0; j < 3; j++) {                 //获取单元格                 TableCell cell = familytable.getCell(i, j);                 //设置单元格的行高                 familytable.setRowHeight(i,10);                 if (j ==0) {                     //设置单元格的宽度                     familytable.setColumnWidth(j,55);                     //给单元格里赋值                     cell.setText(familyInfos.get(i).getYbrgx()+":");                 }else if (j ==1) {                     familytable.setColumnWidth(j,70);                     cell.setText(familyInfos.get(i).getCyxm());                 }else {                     familytable.setColumnWidth(j,180);                     cell.setText(familyInfos.get(i).getDwjzw());                 }             }         }         newSlide.addShape(familytable);         //设置表格在ppt中的位置         familytable.moveTo(20,480);          TextBox familyTxt = new TextBox();         RichTextRun familyRichTextRun = familyTxt.getTextRun().getRichTextRuns()[0];         familyRichTextRun.setText("家庭情况:");         familyTxt.setAnchor(new Rectangle(20,460,300,40));         newSlide.addShape(familyTxt);          //工作经历标题         TextBox workExpTitle = new TextBox();         RichTextRun workExpRichRunTitle = workExpTitle.getTextRun().getRichTextRuns()[0];         workExpRichRunTitle.setText(stdName+"简历");         workExpRichRunTitle.setFontSize(24);         workExpTitle.setAnchor(new Rectangle(450,70,200,40));         newSlide.addShape(workExpTitle);          //工作经历         Table positionTable = new Table(maps.size(),2);         Iterator<Entry<String, String>> it = maps.entrySet().iterator();         intx =0;         while(it.hasNext()) {               Map.Entry<String, String> entity = (Entry<String, String>) it.next();             TableCell cell1 = positionTable.getCell(x,0);             cell1.setText(entity.getKey());             TableCell cell2 = positionTable.getCell(x,1);             cell2.setText(entity.getValue() );             positionTable.setRowHeight(x,10);             positionTable.setColumnWidth(0,160);             positionTable.setColumnWidth(1,250);x++;         }           newSlide.addShape(positionTable);         positionTable.moveTo(330,110);          //导出ppt         File outFile = new File("c:/demo.ppt");         FileOutputStreamout = new FileOutputStream(outFile);         ppt.write(out);out.close();  }

小伙伴们,赶紧试试吧,祝你一次成功!