Java生成和操作PowerPoint表格
程序员文章站
2022-06-17 17:44:46
...
用表格展示数据比单纯的文字更加清晰明了,因此在PPT演示文稿中经常会出现表格。这篇文章将介绍如何使用免费PowerPoint API - Free Spire.Presentation for Java在Java应用程序中生成和操作PowerPoint表格。
导入jar文件
在开始前,我们需要导入jar文件。下载Free Spire.Presentation for Java并解压缩,然后从lib文件夹下,导入jar包到你的Java应用程序中。
代码示例
1. 生成表格
import com.spire.presentation.*;
public class AddTable {
public static void main(String[] args) throws Exception {
//创建PowerPoint文档
Presentation presentation = new Presentation();
Double[] widths = new Double[]{150d, 100d, 100d, 100d, 100d};
Double[] heights = new Double[]{15d, 15d, 15d, 15d, 15d};
//添加一个表格到第一张幻灯片
ITable table = presentation.getSlides().get(0).getShapes().appendTable((float) presentation.getSlideSize().getSize().getWidth() / 2 - 275, 90, widths, heights);
String[][] dataStr = new String[][]
{
{"公司", "一月", "二月", "三月", "合计"},
{"成都分公司", "7", "7", "5", "19"},
{"上海分公司", "6", "4", "7", "17"},
{"武汉分公司", "8", "7", "9", "24"},
{"总计", "21", "18", "21", "60"},
};
//添加数据到表格
for (int i = 0; i < 5; i++) {
for (int j = 0; j < 5; j++) {
table.get(j, i).getTextFrame().setText(dataStr[i][j]);
//设置字体和文本对齐方式
table.get(j, i).getTextFrame().getParagraphs().get(0).getTextRanges().get(0).setLatinFont(new TextFont("宋体"));
table.get(j, i).getTextFrame().getParagraphs().get(0).setAlignment(TextAlignmentType.CENTER);
}
}
//设置表格的样式
table.setStylePreset(TableStylePreset.LIGHT_STYLE_3_ACCENT_1);
//保存文档
presentation.saveToFile("AddTable.pptx", FileFormat.PPTX_2013);
}
}
2. 操作表格
要操作现有表格,首先需要获取这个table对象:
//加载PowerPoint文档
Presentation ppt = new Presentation();
ppt.loadFromFile("AddTable.pptx");
//获取table对象
ITable table = (ITable) ppt.getSlides().get(0).getShapes().get(0);
部分常规操作:
添加行、列
table.getTableRows().append(table.getTableRows().get(0));
table.getColumnsList().add(table.getColumnsList().get(0));
插入行、列
table.getTableRows().insert(0, table.getTableRows().get(0));
table.getColumnsList().insert(0, table.getColumnsList().get(0));
设置行高、列宽
table.getTableRows().get(0).setHeight(50);
table.getColumnsList().get(0).setWidth(100);
删除行、列
table.getTableRows().removeAt(0, false);
table.getColumnsList().removeAt(0, false);
合并单元格
table.mergeCells(table.get(0,0), table.get(0,1), false);
拆分单元格
table.get(0,0).Split(3,2);
单元格填充图片
table.get(0,0).getFillFormat().setFillType(FillFormatType.PICTURE);
table.get(0,0).getFillFormat().getPictureFill().getPicture().setUrl((new java.io.File("bkg.jpg")).getAbsolutePath());
单元格填充颜色
table.get(0,1).getFillFormat().setFillType(FillFormatType.SOLID);
table.get(0,1).getFillFormat().getSolidColor().setColor(Color.blue);
表格边框
table.setTableBorder(TableBorderType.All, 1, Color.black);
操作完成后,别忘记保存文档:
ppt.saveToFile("ManipulateTable.pptx", FileFormat.PPTX_2013);
推荐阅读
-
Hadoop学习(7)-hive的安装和命令行使用和java操作
-
java操作RabbitMQ添加队列、消费队列和三个交换机
-
用Rational Rose逆向工程(java)生成类图(教程和错误解决)
-
java基础系列(一):Number,Character和String类及操作
-
Java对MySQL数据库进行连接、查询和修改操作方法
-
java中List对象的操作方法和List对象的遍历
-
Java反射机制小结和实际操作
-
java 后端生成pdf模板合并单元格表格的案例
-
vue+element创建动态的form表单.以及动态生成表格的行和列
-
结合bootstrap fileinput插件和Bootstrap-table表格插件,实现文件上传、预览、提交的导入Excel数据操作流程