文档章节

创建带有表格的PPT

FansUnion
 FansUnion
发布于 2015/10/22 10:30
字数 566
阅读 4
收藏 0
点赞 0
评论 0
1.程序说明
1.1编程语言:Java
1.2 第三方库:Apache POI
Apache POI 官网: http://poi.apache.org/
1.3程序功能
使用Apache POI创建带有表格的PPT
1.4程序作者
Fans同学
 
2.程序源代码
package org.apache.poi.hslf.examples;
import java.awt.Color;
import java.io.FileOutputStream;
import org.apache.poi.hslf.model.Line;
import org.apache.poi.hslf.model.Slide;
import org.apache.poi.hslf.model.Table;
import org.apache.poi.hslf.model.TableCell;
import org.apache.poi.hslf.model.TextBox;
import org.apache.poi.hslf.usermodel.RichTextRun;
import org.apache.poi.hslf.usermodel.SlideShow;
/**
* 创建带有表格的PPT
*
* @author Fans.Lei
*/
public final class PPTTableDemo {
public static final String filePath = "c:/poi/fans.ppt";
// 入口函数
public static void main(String[] args) throws Exception {
PPTTableDemo tableDemo = new PPTTableDemo();
tableDemo.createPPT();
}
// 创建一个含有2个表格的只有1页内容的PPT
public void createPPT() throws Exception {
// 第一个表格的测试数据
String[][] namePlaceDatas = { { "昵称", "工作地点" }, { "Fans同学", "北京市朝阳区" },
{ "刺客", "广东省珠海市" }, { "嘻嘻猴", "广东省深圳市" }, { "月亮", "湖北省武汉市" },
{ "Wonderful", "湖北省武汉市" } };
SlideShow ppt = new SlideShow();
Slide slide = ppt.createSlide();
// 6行2列
Table namePlaces = new Table(6, 2);
for (int i = 0; i < namePlaceDatas.length; i++) {
for (int j = 0; j < namePlaceDatas[i].length; j++) {
TableCell cell = namePlaces.getCell(i, j);
cell.setText(namePlaceDatas[i][j]);
RichTextRun rt = cell.getTextRun().getRichTextRuns()[0];
rt.setFontName("宋体");
rt.setFontSize(14);
if (i == 0) {
cell.getFill().setForegroundColor(new Color(227, 227, 227));
rt.setBold(true);
} else {
// /rt.setBold(true);
}
cell.setVerticalAlignment(TextBox.AnchorMiddle);
cell.setHorizontalAlignment(TextBox.AlignCenter);
}
}

// 设置表格的边框
Line border1 = namePlaces.createBorder();
border1.setLineColor(Color.black);
border1.setLineWidth(1.0);
namePlaces.setAllBorders(border1);
// 设置表格的列宽
namePlaces.setColumnWidth(0, 200);
namePlaces.setColumnWidth(1, 200);
slide.addShape(namePlaces);
int pgWidth = ppt.getPageSize().width;
namePlaces.moveTo((pgWidth - namePlaces.getAnchor().width) / 2, 100);
// 第二个表格的测试数据
String[][] bookDatas = {
{ "Fans荐书" },
{ "<<浪潮之巅>>@吴军--高科技公司的兴衰史\r" + "<<孙子兵法>>@孙子--兵学圣典,天下第一兵书\r"
+ "<<货币战争>>@宋鸿兵--欧美主要金融势力的兴衰和发展" } };
// 2行1列
Table books = new Table(2, 1);
for (int i = 0; i < bookDatas.length; i++) {
for (int j = 0; j < bookDatas[i].length; j++) {
TableCell cell = books.getCell(i, j);
cell.setText(bookDatas[i][j]);
RichTextRun rt = cell.getTextRun().getRichTextRuns()[0];
rt.setFontSize(10);
rt.setFontName("宋体");
if (i == 0) {
cell.getFill().setForegroundColor(new Color(0, 51, 102));
rt.setFontColor(Color.white);
rt.setBold(true);
rt.setFontSize(16);
cell.setHorizontalAlignment(TextBox.AlignCenter);
} else {
rt.setBullet(true);
rt.setFontSize(14);
cell.setHorizontalAlignment(TextBox.AlignLeft);
}
cell.setVerticalAlignment(TextBox.AnchorMiddle);
}
}

// 设置
表格的列宽和行高
books.setColumnWidth(0, 400);
books.setRowHeight(0, 30);
books.setRowHeight(1, 70);
Line border2 = books.createBorder();
books.setOutsideBorders(border2);
slide.addShape(books);
int pgWidth2 = ppt.getPageSize().width;
books.moveTo((pgWidth2 - books.getAnchor().width) / 2, 400);
// 将PPT写入文件中
FileOutputStream out = new FileOutputStream(filePath);
ppt.write(out);
out.close();
}
}
 
3.程序运行结果

版权声明:本文为博主原创文章,未经博主允许不得转载。

© 著作权归作者所有

共有 人打赏支持
FansUnion
粉丝 56
博文 857
码字总数 825464
作品 0
丰台
高级程序员

暂无相关文章

C++内存映射文件居然是这样?!

内存映射文件大家都时不时听过,但它到底是个什么?赶紧来看看吧 内存映射文件到底是干嘛的呢?让我们先来思考下面几个问题: 如果您想读的内容大于系统分配的内存块怎么办?如果您想搜索的字...

柳猫 ⋅ 27分钟前 ⋅ 0

MySQL 数据库设计总结

规则1:一般情况可以选择MyISAM存储引擎,如果需要事务支持必须使用InnoDB存储引擎。 注意:MyISAM存储引擎 B-tree索引有一个很大的限制:参与一个索引的所有字段的长度之和不能超过1000字节...

OSC_cnhwTY ⋅ 今天 ⋅ 0

多线程(四)

线程池和Exector框架 什么是线程池? 降低资源的消耗 提高响应速度,任务:T1创建线程时间,T2任务执行时间,T3线程销毁时间,线程池没有或者减少T1和T3 提高线程的可管理性。 线程池要做些什...

这很耳东先生 ⋅ 今天 ⋅ 0

使用SpringMVC的@Validated注解验证

1、SpringMVC验证@Validated的使用 第一步:编写国际化消息资源文件 编写国际化消息资源ValidatedMessage.properties文件主要是用来显示错误的消息定制 [java] view plain copy edit.userna...

瑟青豆 ⋅ 今天 ⋅ 0

19.压缩工具gzip bzip2 xz

6月22日任务 6.1 压缩打包介绍 6.2 gzip压缩工具 6.3 bzip2压缩工具 6.4 xz压缩工具 6.1 压缩打包介绍: linux中常见的一些压缩文件 .zip .gz .bz2 .xz .tar .gz .tar .bz2 .tar.xz 建立一些文...

王鑫linux ⋅ 今天 ⋅ 0

6. Shell 函数 和 定向输出

Shell 常用函数 简洁:目前没怎么在Shell 脚本中使用过函数,哈哈,不过,以后可能会用。就像java8的函数式编程,以后获取会用吧,行吧,那咱们简单的看一下具体的使用 Shell函数格式 linux ...

AHUSKY ⋅ 今天 ⋅ 0

单片机软件定时器

之前写了一个软件定时器,发现不够优化,和友好,现在重写了 soft_timer.h #ifndef _SOFT_TIMER_H_#define _SOFT_TIMER_H_#include "sys.h"typedef void (*timer_callback_function)(vo...

猎人嘻嘻哈哈的 ⋅ 今天 ⋅ 0

好的资料搜说引擎

鸠摩搜书 简介:鸠摩搜书是一个电子书搜索引擎。它汇集了多个网盘和电子书平台的资源,真所谓大而全。而且它还支持筛选txt,pdf,mobi,epub、azw3格式文件。还显示来自不同网站的资源。对了,...

乔三爷 ⋅ 今天 ⋅ 0

Debian下安装PostgreSQL的表分区插件pg_pathman

先安装基础的编译环境 apt-get install build-essential libssl1.0-dev libkrb5-dev 将pg的bin目录加入环境变量,主要是要使用 pg_config export PATH=$PATH:/usr/lib/postgresql/10/bin 进......

玛雅牛 ⋅ 今天 ⋅ 0

inno安装

#define MyAppName "HoldChipEngin" #define MyAppVersion "1.0" #define MyAppPublisher "Hold Chip, Inc." #define MyAppURL "http://www.holdchip.com/" #define MyAppExeName "HoldChipE......

backtrackx ⋅ 今天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部