我是靠谱客的博主 暴躁铃铛,最近开发中收集的这篇文章主要介绍Java使用poi操作ppt,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

Java使用poi操作ppt

https://editor.csdn.net/md/?articleId=117926694
上一篇中写了操作文本框和插入图片

这一篇主要是如何在有模板的情况下如替换文本和修改表格

替换表示符号文本

1. 加载模板到对象中
// 模板设置到项目中resources目录下ppt文件夹
ClassPathResource classPathResource = new ClassPathResource("ppt/template.pptx");
InputStream inputStream = classPathResource.getInputStream();
// 设置到poi框架中的对象中XMLSlideShow
XMLSlideShow ppt = new XMLSlideShow(inputStream);
2.替换文本
// 获取模板中的每一页的ppt
List<XSLFSlide> slides = ppt.getSlides();
// 遍历操作
for (XSLFShape shape : shapes) {
if (shape instanceof AutoShape) {
AutoShape autoShape = (AutoShape) shape;
String text = autoShape.getText();
if (text.contains("{YEAR}")) {
TextRun textRun = autoShape.setText(text.replace("{YEAR}", year));
// 设置文本格式 
textRun.setFontFamily("黑体");
textRun.setFontSize(36.0);
textRun.setFontColor(Color.RED);
}
}
}

替换表格

表格我直接在模板中设置好了表头

// 获取模板中的每一页的ppt
List<XSLFSlide> slides = ppt.getSlides();
// 遍历操作
for (XSLFShape shape : shapes) {
if (xslfShape instanceof XSLFTable) {
// 获取ppt中表格对象
XSLFTable xslfTable = (XSLFTable) xslfShape;
// 新建一行
XSLFTableRow tableRow = xslfTable.addRow();
XSLFTableCell tableCell1 = tableRow.addCell();
XSLFTextParagraph textParagraph1 = tableCell1.addNewTextParagraph();
XSLFTextRun textRun = textParagraph1.addNewTextRun();
textRun.setText("内容1");
// 文本对齐
textParagraph1.setTextAlign(TextParagraph.TextAlign.CENTER);
// 设置文本样式
setTextRunStyle(textRun);
// 第二个单元格
XSLFTableCell tableCell2 = tableRow.addCell();
// 设置单元格格式
setTableCellStyle(tableCell2);
// 数据第5行的第1 2的单元格合并 参数firstrow lastrow firstCol lastCol
xslfTable.mergeCells(4, 4, 0, 1);
}
}
/**
* @Description: 设置字体样式
* @Author: zhy
* @Date: 2021/6/22 11:30
* @Param: [textRun]
* @return: void
*/
private void setTextRunStyle(XSLFTextRun textRun) {
textRun.setFontSize(12.0);
// 设置黑体
textRun.setBold(false);
// 设置斜体
textRun.setItalic(false);
// 设置字体
textRun.setFontFamily("宋体");
textRun.setFontColor(Color.black);
}
/**
* @Description: 设置单元格的样式
* @Author: zhy
* @Date: 2021/6/24 16:55
* @Param:
[tableCell]
* @return: void
*/
private void setTableCellStyle(XSLFTableCell tableCell) {
// 是背景色吗
tableCell.setFillColor(Color.GRAY);
// 垂直对齐方式
tableCell.setVerticalAlignment(VerticalAlignment.MIDDLE);
tableCell.setLeftInset(1);
tableCell.setRightInset(1);
tableCell.setBottomInset(1);
tableCell.setTopInset(1);
// 设置边框的颜色
tableCell.setBorderColor(TableCell.BorderEdge.bottom, Color.BLACK);
tableCell.setBorderColor(TableCell.BorderEdge.top, Color.BLACK);
tableCell.setBorderColor(TableCell.BorderEdge.left, Color.BLACK);
tableCell.setBorderColor(TableCell.BorderEdge.right, Color.BLACK);
}

我这个是因为项目中,需要将一个excel表中导入ppt中,但是没有办法直接导入,所以在ppt中新建一个表格的表头,然后数据查询出来之后,再一行一行的填充。

最后

以上就是暴躁铃铛为你收集整理的Java使用poi操作ppt的全部内容,希望文章能够帮你解决Java使用poi操作ppt所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(37)

评论列表共有 0 条评论

立即
投稿
返回
顶部