`
oywl2008
  • 浏览: 1051190 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

一个使用Apache POI写word文档的实例

 
阅读更多
package com.pio.test;


import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;
import java.util.HashMap;
import java.util.Map;

import org.apache.poi.hwpf.HWPFDocument;
import org.apache.poi.hwpf.usermodel.Range;
import org.apache.poi.poifs.filesystem.DirectoryEntry;
import org.apache.poi.poifs.filesystem.POIFSFileSystem;


public class ExportDocTest {
    
    public static void main(String[] args) {
        String destFile="D:\\del\\11.doc";
        //#####################根据自定义内容导出Word文档#################################################
        StringBuffer fileCon=new StringBuffer();
        fileCon.append("               张大炮            男              317258963215223\n" +
                "2011     09        2013     07       3\n" +
                "    二炮研究              成人\n" +
                "2013000001                             2013     07     08");
        fileCon.append("\n\r\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n");
        
        //new ExportDocTest().exportDoc(destFile, fileCon.toString());
        
        //##################根据Word模板导出单个Word文档###################################################
        Map<String, String> map=new HashMap<String, String>();
        
        map.put("name", "Zues");
        map.put("sex", "男");
        map.put("idCard", "200010");
        map.put("year1", "2000");
        map.put("month1", "07");
        map.put("year2", "2008");
        map.put("month2", "07");
        map.put("gap", "2");
        map.put("zhuanye", "计算机科学与技术");
        map.put("type", "研究生");
        map.put("bianhao", "2011020301");
        map.put("nowy", "2011");
        map.put("nowm", "01");
        map.put("nowd", "20220301");
        //注意biyezheng_moban.doc文档位置,此例中为应用根目录
        HWPFDocument document=new ExportDocTest().replaceDoc("D:\\del\\biyezheng_moban.doc", map);
        ByteArrayOutputStream ostream = new ByteArrayOutputStream();
        try {
            document.write(ostream);
            //输出word文件
            OutputStream outs=new FileOutputStream(destFile);
            outs.write(ostream.toByteArray());
            outs.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
        
    }
    
    
    /**
     * 
     * @param destFile
     * @param fileCon
     */
    public void exportDoc(String destFile,String fileCon){
        try {
            //doc content
            ByteArrayInputStream bais = new ByteArrayInputStream(fileCon.getBytes());
            POIFSFileSystem fs = new POIFSFileSystem();
            DirectoryEntry directory = fs.getRoot(); 
            directory.createDocument("WordDocument", bais);
            FileOutputStream ostream = new FileOutputStream(destFile);
            fs.writeFilesystem(ostream);
            bais.close();
            ostream.close();
            
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
    
    
    /**
     * 读取word模板并替换变量
     * @param srcPath
     * @param map
     * @return
     */
    public HWPFDocument replaceDoc(String srcPath, Map<String, String> map) {
        try {
            // 读取word模板
            FileInputStream fis = new FileInputStream(new File(srcPath));
            HWPFDocument doc = new HWPFDocument(fis);
            // 读取word文本内容
            Range bodyRange = doc.getRange();
            // 替换文本内容
            for (Map.Entry<String, String> entry : map.entrySet()) {
                bodyRange.replaceText("${" + entry.getKey() + "}", entry
                        .getValue());
            }
            return doc;
        } catch (Exception e) {
            e.printStackTrace();
            return null;
        }
    }

}

 

 

 

 

http://www.cnblogs.com/shihujiang/archive/2012/04/11/2442013.html

分享到:
评论

相关推荐

    java Apache poi 对word doc文件进行读写操作

    Apache POI 是一个流行的 Java 库,用于处理 Microsoft Office 格式,如 Word、Excel 和 PowerPoint。在处理 Word .doc 文件时,POI 提供了一个名为 HWPF(Horizontally Written Property Set Files)的模块。这个...

    使用java Apache poi 根据word模板生成word报表例子

    使用java Apache poi 根据word模板生成word报表 仅支持docx格式的word文件,大概是word2010及以后版本,doc格式不支持。 使用说明:https://blog.csdn.net/u012775558/article/details/79678701

    apache poi读取word内容

    要读取Word文档,我们需要先创建一个`XWPFDocument`实例,传入一个`InputStream`,该输入流通常来自打开的文件或网络资源。 ```java FileInputStream fis = new FileInputStream("path_to_your_word_file.docx"); ...

    poi合并多个word文档并设置页码

    1. 使用`XWPFDocument`的`new XWPFDocument()`创建一个新的Word文档实例。 2. 使用`FileInputStream`打开每个要合并的Word文档。 3. 遍历每个输入文档的段落(`XWPFParagraph`)和表格(`XWPFTable`),并使用`...

    使用POI读写Word文件(兼容doc与docx版本)

    Apache POI 是一个流行的Java库,它允许开发者创建、修改和显示Microsoft Office格式的文件,包括Word(.doc 和 .docx)。本篇文章将详细介绍如何使用POI来读写Word文件,兼容doc与docx版本。 首先,我们需要理解....

    android中poi生成word文档和excel文档

    在Android开发中,Apache POI 是一个非常实用的库,它允许程序员创建、修改和显示Microsoft Office格式的文件,如Word文档(.doc)和Excel工作簿(.xlsx或.xls)。这个工具对于需要在Android应用中处理这些文档的...

    java Apache poi word模板 表格模板 word报表.zip

    Java Apache POI 是一个强大的库,它允许程序员在Java应用程序中创建、修改和显示Microsoft Office格式的文件,包括Word文档(.docx)和Excel工作簿(.xlsx)。本资料包着重介绍了如何利用Apache POI库来处理Word...

    Apache POI for Android

    Apache POI 是一个著名的开源项目,主要为处理微软的Office文档格式提供了一个强大的Java API。在Android开发中,Apache POI 提供了处理Excel文件的能力,使得开发者可以在Android设备上进行Excel的读写操作,无需...

    POI导出Word 页眉 页脚 标题设置

    Apache POI 是一个开源项目,专门用于处理Microsoft Office格式的文件,如Word、Excel和PowerPoint。在本主题中,我们将深入探讨如何使用POI库来导出Word文档,并进行页眉、页脚和标题的设置。这个过程涉及到对Word...

    POI-TL合并多个Word文档

    标题 "POI-TL合并多个Word文档" 涉及到的是使用Apache POI和POI-TL库在Java环境中合并多个Word文档的技术。Apache POI是一个流行的开源库,允许开发者处理Microsoft Office格式的文件,如Word、Excel和PowerPoint。...

    poi将word转换成html、样式 表格 图片处理

    使用Apache POI的XWPF库,我们可以加载一个.docx文件,XWPFDocument类是处理此类文件的基础。通过XWPFDocument实例,我们可以访问文档中的所有元素。 4. **处理文本样式** XWPFParagraph 和 XWPFRun 对象分别代表...

    POI修改word、excel、pdf、ppt文件属性如作者以及将其转成html

    Apache POI是一个强大的Java库,专门用于处理Microsoft Office格式的文件,如Word(.doc, .docx)、Excel(.xls, .xlsx)、PowerPoint(.ppt, .pptx)等。通过使用POI,开发者可以创建、读取、修改这些文件,并且将...

    poi读写word模板/JAVA生成word包

    1. **创建Word文档对象**:使用`XWPFDocument()`构造函数创建一个新的Word文档实例。 2. **添加段落和文本**:通过`createParagraph()`方法创建段落,然后使用`createRun()`方法在段落中插入文本。例如,`paragraph...

    Apache Poi相关Jar包

    5. **导出Word**: 使用Apache POI创建Word文档涉及创建Document对象,添加Paragraphs和Runs,设置字体样式,以及插入图片等。你可以通过WordprocessingMLPackage实例来创建一个新的.docx文件,然后通过Body和...

    java--Poi 生成word文档

    Java中的Apache POI库是一个强大的工具,用于读取、创建和修改Microsoft Office格式的文件,包括Word文档。在这个“java--Poi 生成word文档”的示例中,我们将深入探讨如何利用POI库来生成Word文档。Apache POI提供...

    poi操作word实例

    本实例主要关注的是使用POI操作Word文档,具体分为HWPFDocument和XWPFDocument两种方式。 1. HWPFDocument:这是Apache POI处理旧版Word文档(.doc)的方式。HWPFDocument类是POI库中用于读写老式Microsoft Word 97...

    Apache poi 导出excel实例

    Apache POI 是一个开源项目,专门用于处理Microsoft Office格式的文件,如Excel、Word和PowerPoint。在本文中,我们将深入探讨如何使用Apache POI库来创建和导出Excel文件。这个实例对于需要在Java应用中生成动态...

    POI操作Word中插入文本和图片

    Apache POI是一个强大的Java库,专门用于处理Microsoft Office格式的文件,如Word、Excel和PowerPoint。在本文中,我们将深入探讨如何使用Apache POI在Word文档中插入文本和图片,这对于创建动态报告模板尤其有用。 ...

    Java使用poi-tl生成word文档

    Apache POI是一个广泛使用的开源库,它允许Java开发者读写Microsoft Office格式的文件,而POI-TL(Template-based Reporting Library)是POI的一个扩展,专门用于创建Word文档模板并填充数据。 首先,我们需要理解...

    Poi修改word eclipse项目,

    总之,这个Eclipse项目展示了如何使用Apache POI库在Word文档中动态添加文字,为其他开发者提供了一个实用的示例,帮助他们更好地理解和运用Apache POI进行Word操作。同时,通过博客文章的配合,可以进一步学习和...

Global site tag (gtag.js) - Google Analytics