POI之PPT导出最简单实例

开心一笑

有个四岁的小鬼问我:哥哥你怎么长得那么丑啊?
我想了想,到他耳边说:你不要告诉别人哦。其实我就是未来的你。
他哭了。。。

提出问题

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

解决问题

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));
    }

}

结果:


这里写图片描述

读书分享

来自《岁月的童话》

  • 回忆是一种很奇妙的东西,它生活在过去,存在于现在,却能影响未来。
  • 如果真的有一天。某个回不来的人消失了。某个离不开的人离开了。也没关系。时间会带你去最正确的人身边。请你先好好爱着自己。然后那个还不知道在哪里的人,会来接你。
  • 岁月似一掬清水,无论平摊还是紧握在手掌,总会有一点一滴从指缝中流逝。
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 199,519评论 5 468
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 83,842评论 2 376
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 146,544评论 0 330
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 53,742评论 1 271
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 62,646评论 5 359
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,027评论 1 275
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,513评论 3 390
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,169评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,324评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,268评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,299评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,996评论 3 315
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,591评论 3 303
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,667评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,911评论 1 255
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,288评论 2 345
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 41,871评论 2 341

推荐阅读更多精彩内容