`
sdustyongz
  • 浏览: 85142 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Java 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\n" +
26                 "2011     09        2013     07       3\n" +
27                 "    二炮研究              成人\n" +
28                 "2013000001                             2013     07     08");
29         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");
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 }
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics