Java使用Apache的POI创建word文档

拥有大量文章、对外文档的企业为了提高搜索引擎的命中率、扩大搜索结果向百度等文库上传文档是一种比较常用的SEO手段。因此如何使用元数据创建成word文档就需要继续阅读下文了。

因为打算使用Java实现,相对成熟的技术一般在Apache 都有开源的项目可以使用,在Apache找了一番发现了Apache POI (the Java API for Microsoft Documents)这个开源项目,专门处理微软的文档(也包括Excel,PPT),看着Apahce那根彩色的毛的经典标志一种大气的感觉油然而生,决定就用它来帮助SEO君处理5多万篇文章生成word,否则连夜打断SEO君的狗腿他也做不完。

下载POI的源包先粗看了下顺便学习,发现封装的很简练,使用Maven引用依赖到新建的项目中(也可以直接引用jar),使用POI创建word文档方法简短的如下:
使用指定的标题和内容创建word文档,文档名称和标题相同,生成title.doc
last是已经过滤掉Html标签并处理过的正文,\r\n在word文档创建时对应会换行

private static void createDoc(String title, String last) throws IOException {
    XWPFDocument doc = WordUtil.getDoc();
    XWPFParagraph paragraph = WordUtil.getParagraph(doc);
    paragraph.setSpacingBefore(4);
    XWPFRun run = WordUtil.getDocRun(paragraph);
    String[] contents = last.split("\\r\\n");
    int startParagraph = 0;
    for (String p : contents) {
        run.addBreak(BreakType.TEXT_WRAPPING);
    }

    FileOutputStream out = null;
    try {
        out = new FileOutputStream("" + title + ".doc");
        doc.write(out);
    } catch (Exception ex) {

    } finally {
        if (out != null)
            out.close();
    }

}

还有一个WordUtil类的内容如下

public static XWPFRun getDocRun(XWPFParagraph p) {
    p.setWordWrap(true);
    p.setPageBreak(true);

    p.setAlignment(ParagraphAlignment.BOTH);
    p.setSpacingLineRule(LineSpacingRule.EXACT);
    p.setIndentationFirstLine(600);

    XWPFRun r = p.createRun();
    return r;
}


public static XWPFDocument getDoc() {
    XWPFDocument doc = new XWPFDocument();
    return doc;
}

public static XWPFParagraph getParagraph(XWPFDocument doc) {
    XWPFParagraph p = doc.createParagraph();
    return p;
}

使用POI创建普通文本的word就是这么简单,在我的个人工作电脑上2分钟生成,SEO君欢天喜地的用硬盘拷贝走了。



本作品采用知识共享署名 4.0 国际许可协议进行许可,欢迎转载内容并请注明出处
《Java使用Apache的POI创建word文档》 http://io97.com/2014/12/09/10019.html