真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

使用java怎么替換docx文件中的字符串-創(chuàng)新互聯(lián)

這篇文章給大家介紹使用java怎么替換docx文件中的字符串,內(nèi)容非常詳細(xì),感興趣的小伙伴們可以參考借鑒,希望對(duì)大家能有所幫助。

創(chuàng)新互聯(lián)專注為客戶提供全方位的互聯(lián)網(wǎng)綜合服務(wù),包含不限于成都網(wǎng)站設(shè)計(jì)、做網(wǎng)站、清原網(wǎng)絡(luò)推廣、成都小程序開(kāi)發(fā)、清原網(wǎng)絡(luò)營(yíng)銷、清原企業(yè)策劃、清原品牌公關(guān)、搜索引擎seo、人物專訪、企業(yè)宣傳片、企業(yè)代運(yùn)營(yíng)等,從售前售中售后,我們都將竭誠(chéng)為您服務(wù),您的肯定,是我們大的嘉獎(jiǎng);創(chuàng)新互聯(lián)為所有大學(xué)生創(chuàng)業(yè)者提供清原建站搭建服務(wù),24小時(shí)服務(wù)熱線:13518219792,官方網(wǎng)址:www.cdcxhl.com

替換docx文件里面的 ${} 字符串


public class Main {
  public static void main(String[] args) throws Exception {
    String template = "C:\\Users\\lzh\\Desktop\\模板.docx";
    String outSrc = "C:\\Users\\lzh\\Desktop\\簡(jiǎn)歷.docx";

    var is = new FileInputStream(template);
    var os = new FileOutputStream(outSrc);

    editDocx(os, is, xml -> {
      Map map = new HashMap<>();
      map.put("${name}", "李**");
      map.put("${sex}", "男");
      map.put("${age}", "21");

      Pattern p = Pattern.compile("(\\$\\{)([\\w]+)(\\})");
      Matcher m = p.matcher(xml);
      StringBuffer sb = new StringBuffer();
      while (m.find()) {
        String group = m.group();
        m.appendReplacement(sb, map.get(group));
      }
      m.appendTail(sb);
      xml = sb.toString();

      return xml;
    });
  }

  public static void editDocx(OutputStream bos,InputStream is, Process process){
    ZipInputStream zin = new ZipInputStream(is);
    ZipOutputStream zos = new ZipOutputStream(bos);
    try {
      ZipEntry entry;
      while((entry = zin.getNextEntry()) != null) {
        //把輸入流的文件傳到輸出流中 如果是word/document.xml由我們輸入
        zos.putNextEntry(new ZipEntry(entry.getName()));
        if("word/document.xml".equals(entry.getName())){
          String xml = new BufferedReader(new InputStreamReader(zin)).lines().collect(Collectors.joining(System.lineSeparator()));
          xml = process.process(xml);

          ByteArrayInputStream byteIn = new ByteArrayInputStream(xml.getBytes());
          int c;
          while ((c = byteIn.read()) != -1) {
            zos.write(c);
          }
          byteIn.close();
        }else {
          int c;
          while ((c = zin.read()) != -1) {
            zos.write(c);
          }
        }
      }
    } catch (IOException e) {
      e.printStackTrace();
    } finally {
      try {
        zos.close();
        zin.closeEntry();
        zin.close();
      } catch (IOException e) {
        e.printStackTrace();
      }
    }
  }
}

interface Process {
  String process(String xml);
}

關(guān)于使用java怎么替換docx文件中的字符串就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,可以學(xué)到更多知識(shí)。如果覺(jué)得文章不錯(cuò),可以把它分享出去讓更多的人看到。


名稱欄目:使用java怎么替換docx文件中的字符串-創(chuàng)新互聯(lián)
瀏覽路徑:http://weahome.cn/article/dejccs.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部