• java操作word


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

    复制代码
      1 package apache.poi;
      2 
      3 import java.io.ByteArrayInputStream;
      4 import java.io.ByteArrayOutputStream;
      5 import java.io.File;
      6 import java.io.FileInputStream;
      7 import java.io.FileOutputStream;
      8 import java.io.IOException;
      9 import java.io.OutputStream;
     10 import java.util.HashMap;
     11 import java.util.Map;
     12 
     13 import org.apache.poi.hwpf.HWPFDocument;
     14 import org.apache.poi.hwpf.usermodel.Range;
     15 import org.apache.poi.poifs.filesystem.DirectoryEntry;
     16 import org.apache.poi.poifs.filesystem.POIFSFileSystem;
     17 
     18 
     19 public class ExportDocTest {
     20     
     21     public static void main(String[] args) {
     22         String destFile="D:\11.doc";
     23         //#####################根据自定义内容导出Word文档#################################################
     24         StringBuffer fileCon=new StringBuffer();
     25         fileCon.append("               张大炮            男              317258963215223
    " +
     26                 "2011     09        2013     07       3
    " +
     27                 "    二炮研究              成人
    " +
     28                 "2013000001                             2013     07     08");
     29         fileCon.append("
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    ");
     30         
     31         new ExportDocTest().exportDoc(destFile, fileCon.toString());
     32         
     33         //##################根据Word模板导出单个Word文档###################################################
     34         Map<String, String> map=new HashMap<String, String>();
     35         
     36         map.put("name", "Zues");
     37         map.put("sex", "男");
     38         map.put("idCard", "200010");
     39         map.put("year1", "2000");
     40         map.put("month1", "07");
     41         map.put("year2", "2008");
     42         map.put("month2", "07");
     43         map.put("gap", "2");
     44         map.put("zhuanye", "计算机科学与技术");
     45         map.put("type", "研究生");
     46         map.put("bianhao", "2011020301");
     47         map.put("nowy", "2011");
     48         map.put("nowm", "01");
     49         map.put("nowd", "20220301");
     50         //注意biyezheng_moban.doc文档位置,此例中为应用根目录
     51         HWPFDocument document=new ExportDocTest().replaceDoc("biyezheng_moban.doc", map);
     52         ByteArrayOutputStream ostream = new ByteArrayOutputStream();
     53         try {
     54             document.write(ostream);
     55             //输出word文件
     56             OutputStream outs=new FileOutputStream(destFile);
     57             outs.write(ostream.toByteArray());
     58             outs.close();
     59         } catch (IOException e) {
     60             e.printStackTrace();
     61         }
     62         
     63     }
     64     
     65     
     66     /**
     67      * 
     68      * @param destFile
     69      * @param fileCon
     70      */
     71     public void exportDoc(String destFile,String fileCon){
     72         try {
     73             //doc content
     74             ByteArrayInputStream bais = new ByteArrayInputStream(fileCon.getBytes());
     75             POIFSFileSystem fs = new POIFSFileSystem();
     76             DirectoryEntry directory = fs.getRoot(); 
     77             directory.createDocument("WordDocument", bais);
     78             FileOutputStream ostream = new FileOutputStream(destFile);
     79             fs.writeFilesystem(ostream);
     80             bais.close();
     81             ostream.close();
     82             
     83         } catch (IOException e) {
     84             e.printStackTrace();
     85         }
     86     }
     87     
     88     
     89     /**
     90      * 读取word模板并替换变量
     91      * @param srcPath
     92      * @param map
     93      * @return
     94      */
     95     public HWPFDocument replaceDoc(String srcPath, Map<String, String> map) {
     96         try {
     97             // 读取word模板
     98             FileInputStream fis = new FileInputStream(new File(srcPath));
     99             HWPFDocument doc = new HWPFDocument(fis);
    100             // 读取word文本内容
    101             Range bodyRange = doc.getRange();
    102             // 替换文本内容
    103             for (Map.Entry<String, String> entry : map.entrySet()) {
    104                 bodyRange.replaceText("${" + entry.getKey() + "}", entry
    105                         .getValue());
    106             }
    107             return doc;
    108         } catch (Exception e) {
    109             e.printStackTrace();
    110             return null;
    111         }
    112     }
    113 
    114 }
    复制代码
  • 相关阅读:
    linux随记
    springboot-2
    netty-lean1
    nginx
    自定义启动器
    arrayList add
    Mybatis 转义符
    idea 闪退 但是启动的服务还在解决办法
    java 通过map根据list某个字段进行合并
    java list的深拷贝
  • 原文地址:https://www.cnblogs.com/lcngu/p/5021981.html
Copyright © 2020-2023  润新知