資源簡介
poi 版本 3.17 文件中包含 模板 測試main 數據類 需要調整下 路徑
/**
* @Description:
* @Author: xsr
* @date : 2018/7/22 9:41
*/
public static void makePiePpt(List dataList) throws Exception {
//打開模板ppt
String mtemplateName = "E:/PIE/mtemplate/PIE" + dataList.size() + ".pptx";
String path ="E:/PIE/NewPPT/NewPIE" + dataList.size() + ".pptx";
XMLSlideShow pptx = new XMLSlideShow(new FileInputStream(mtemplateName));
pptx.setPageSize(new Dimension(960, 580));
for (int i = 0; i < dataList.size(); i++) {
makePiePpt(pptx, i, dataList);
}
//保存文件
OutputStream out = new FileOutputStream(path);
pptx.write(out);
out.close();
System.out.println("導出成功");
}
/**
* @Description:
* @Author: xsr
* @date : 2018/7/27 5:41
*/
public static void makePiePpt(XMLSlideShow pptx, Integer pieNum, List dataList) throws Exception {
//獲取第一個ppt頁面
XSLFSlide slide = pptx.getSlides().get(0);
//遍歷第一頁元素找到圖表
XSLFChart chart;
List poixmlDocumentParts = new ArrayList();
for (POIXMLDocumentPart part : slide.getRelations()) {
if (part instanceof XSLFChart) {
chart = (XSLFChart) part;
poixmlDocumentParts.add(chart);
}
}
chart = (XSLFChart) poixmlDocumentParts.get(pieNum);
POIXMLDocumentPart xlsPart = chart.getRelations().get(0);
//把圖表綁定到Excel workbook中
XSSFWorkbook wb = new XSSFWorkbook();
XSSFSheet sheet = wb.createSheet();
CTChart ctChart = chart.getCTChart();
CTPlotArea plotArea = ctChart.getPlotArea();
CTPieChart pieChart = plotArea.getPieChartArray(0);
// 獲取圖表的系列
CTPieSer ser = pieChart.getSerArray(0);
XSSFRow row0 = sheet.createRow(0);
// Series Text
CTSerTx tx = ser.getTx();
tx.getStrRef().

代碼片段和文件信息
package?com.adc.da.export.util;
import?com.adc.da.reve.vo.PieData;
import?org.apache.poi.POIxmlDocumentPart;
import?org.apache.poi.hssf.util.CellReference;
import?org.apache.poi.ss.util.CellRangeAddress;
import?org.apache.poi.xslf.usermodel.xmlSlideShow;
import?org.apache.poi.xslf.usermodel.XSLFChart;
import?org.apache.poi.xslf.usermodel.XSLFSlide;
import?org.apache.poi.xssf.usermodel.XSSFRow;
import?org.apache.poi.xssf.usermodel.XSSFSheet;
import?org.apache.poi.xssf.usermodel.XSSFWorkbook;
import?org.openxmlformats.schemas.drawingml.x2006.chart.*;
import?java.awt.*;
import?java.io.File;
import?java.io.FileInputStream;
import?java.io.FileOutputStream;
import?java.io.OutputStream;
import?java.util.ArrayList;
import?java.util.Arrays;
import?java.util.List;
public?class?pie?{
????public?static?void?main(String[]?args)?throws?Exception?{
????????List?dataList?=?new?ArrayList<>();
????????PieData?pieData?=?new?PieData();
????????pieData.settitleName(“車型類別(一)“);
????????pieData.setLegengName(Arrays.asList(“敞篷跑車“?“雙門轎跑車“?“超級跑車“?“2+2?跑車“));
????????pieData.setLegengValue(Arrays.asList(“15“?“25“?“35“?“45“));
????????dataList.add(pieData);
????????pieData?=?new?PieData();
????????pieData.settitleName(“車型類別(二)“);
????????pieData.setLegengName(Arrays.asList(“敞篷跑車1“?“雙門轎跑車1“?“超級跑車1“?“2+2?跑車1“));
????????pieData.setLegengValue(Arrays.asList(“90“?“60“?“30“?“10“));
????????dataList.add(pieData);
????????pieData?=?new?PieData();
????????pieData.settitleName(“車型類別(三)“);
????????pieData.setLegengName(Arrays.asList(“敞篷跑車2“?“雙門轎跑車2“?“超級跑車2“?“2+2?跑車2“));
????????pieData.setLegengValue(Arrays.asList(“60“?“15“?“20“?“10“));
????????dataList.add(pieData);
//????????pieData?=?new?PieData();
//????????pieData.settitleName(“車型類別(四)“);
//????????pieData.setLegengName(Arrays.asList(“敞篷跑車3“?“雙門轎跑車3“?“超級跑車3“?“2+2?跑車3“));
//????????pieData.setLegengValue(Arrays.asList(“10“?“80“?“20“?“10“));
//????????dataList.add(pieData);
????????makePiePpt(dataList);
????}
????/**
?????*?@Description:反向查詢導出(**)
?????*?@Author:?xieshengrui
?????*?@date?:??2018/7/22?9:41
?????*/
????public?static?void?makePiePpt(List?dataList)?throws?Exception?{
????????//打開模板ppt
????????String?mtemplateName?=?“E:/PIE/mtemplate/PIE“?+?dataList.size()?+?“.pptx“;
????????String?path?=“E:/PIE/NewPPT/NewPIE“?+?dataList.size()?+?“.pptx“;
????????xmlSlideShow?pptx?=?new?xmlSlideShow(new?FileInputStream(mtemplateName));
????????pptx.setPageSize(new?Dimension(960?580));
????????for?(int?i?=?0;?i?????????????makePiePpt(pptx?i?dataList);
????????}
????????//保存文件
????????OutputStream?out?=?new?FileOutputStream(path);
????????pptx.write(out);
????????out.close();
????????System.out.println(“導出成功“);
????}
????/**
?????*?@Description:反向查詢導出(***)
?????*?@Author:?xieshengrui
?????*?@date?:??2018/7/27?5:41
?????*/
????public?static?void?makePiePpt(xmlSlideShow?pptx?Integer
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件??????54765??2018-09-03?15:36??multi-pie\PIE\mtemplate\PIE1.pptx
?????文件??????72546??2018-09-03?15:37??multi-pie\PIE\mtemplate\PIE2.pptx
?????文件??????92039??2018-09-03?15:38??multi-pie\PIE\mtemplate\PIE3.pptx
?????文件?????102392??2018-09-03?15:39??multi-pie\PIE\mtemplate\PIE4.pptx
?????文件??????76842??2018-09-03?15:40??multi-pie\PIE\NewPPT\NewPIE3.pptx
????..A..H.???????165??2018-09-03?15:40??multi-pie\PIE\NewPPT\~$NewPIE3.pptx
?????文件???????6390??2018-09-03?15:25??multi-pie\pie.java
?????文件???????1158??2018-08-30?11:50??multi-pie\PieData.java
?????目錄??????????0??2018-09-03?15:43??multi-pie\PIE\mtemplate
?????目錄??????????0??2018-09-03?15:41??multi-pie\PIE\NewPPT
?????目錄??????????0??2018-09-03?15:41??multi-pie\PIE
?????目錄??????????0??2018-09-03?15:44??multi-pie
-----------?---------??----------?-----??----
???????????????406297????????????????????12
評論
共有 條評論