java导出ppt_POI之PPT导出最简单实例

开心一笑

有个四岁的小鬼问我:哥哥你怎么长得那么丑啊?

我想了想,到他耳边说:你不要告诉别人哦。其实我就是未来的你。

他哭了。。。

提出问题

如何实现一个最简单的PPT导出功能呢???

解决问题

6db0ba064377?ref=myread

QQ10.png

一步一步地,没打算写太多,感觉写的篇幅过长,大都没什么耐心看下去,所以每次都只解决一个小问题,开始吧......

下面是对POI的各种文件做一些简单介绍:

Excel 文件: xls 格式文件对应 POI API 为 HSSF 。 xlsx 格式为 office 2007 的文件格式,POI 中对应的API 为XSSF

Word 文件:doc 格式文件对应的 POI API 为 HWPF。 docx 格式为 XWPF

powerPoint 文件:ppt 格式对应的 POI API 为 HSLF。 pptx 格式为 XSLF

outlook :对应的 API 为 HSMF

Visio: 对应的 API 为 HDGF

Publisher : 对应的 API 为 HPBF

下面是来自POI文档里对类的介绍:

HSLFSlideShow:

This class contains the main functionality for the Powerpoint file "reader".(该类包含PTT读的主要功能)

SlideShow:

This class is a friendly wrapper on top of the more scary HSLFSlideShow. TODO: - figure out how to match notes to their correct sheet (will involve understanding DocSlideList and DocNotesList) - handle Slide creation cleaner

(可以把该类理解为Slide管理类)

Slide

This class represents a slide in a PowerPoint Document. It allows access to the text within, and the layout. For now, it only does the text side of things though(该类代表PPT里的一页幻灯片,Slide英文意思为幻灯片)

TextBox:

Represents a TextFrame shape in PowerPoint.(在PPT里代表一个文本框)

Contains the text in a text frame as well as the properties and methods that control alignment and anchoring of the text.

例一:最简单的PPT生成实例,是针对.ppt格式做介绍,下一章,我们用.pptx做介绍

package com.hwy.test;

import org.apache.poi.hslf.HSLFSlideShow;

import org.apache.poi.hslf.model.Slide;

import org.apache.poi.hslf.model.TextBox;

import org.apache.poi.hslf.usermodel.SlideShow;

import java.awt.*;

import java.io.File;

import java.io.FileOutputStream;

/**

* PPT简单导出

* Created by Ay on 2016/6/14.

*/

public class MyFirstPPTTest {

public static void main(String[] args) throws Exception{

/** PPT文件路径 **/

String filePath = "D://MyPPT.ppt";

/** 加载PPT **/

HSLFSlideShow ppt = new HSLFSlideShow(filePath);

/** 创建一个slideShow,可以理解为管理Slide的列表 **/

SlideShow slideShow = new SlideShow(ppt);

/** 可以 理解为PPT里的每一页 **/

Slide slide = slideShow.createSlide();

/** 创建一个文本框 **/

TextBox textBox = new TextBox();

/** 设置文本框的值 **/

textBox.setText("Hello PPT ....");

/** 设置文本框的位置,参数分别为想x,y,width,height **/

textBox.setAnchor(new Rectangle(10,10,100,100));

slide.addShape(textBox);

/** 输出文件 **/

slideShow.write(new FileOutputStream(filePath));

}

}

结果:

6db0ba064377?ref=myread

这里写图片描述

读书分享

来自《岁月的童话》

回忆是一种很奇妙的东西,它生活在过去,存在于现在,却能影响未来。

如果真的有一天。某个回不来的人消失了。某个离不开的人离开了。也没关系。时间会带你去最正确的人身边。请你先好好爱着自己。然后那个还不知道在哪里的人,会来接你。

岁月似一掬清水,无论平摊还是紧握在手掌,总会有一点一滴从指缝中流逝。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值