java简单操作word实例

前端技术 2023/09/04 Java

本文为大家分享了java简单操作word例子,供大家参考,具体内容如下

package apache.poi;

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:\\\\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(\"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;
    }
  }

}

以上就是本文的全部内容,希望对大家的学习有所帮助。

本文地址:https://www.stayed.cn/item/9097

转载请注明出处。

本站部分内容来源于网络,如侵犯到您的权益,请 联系我

我的博客

人生若只如初见,何事秋风悲画扇。