佳木斯湛栽影视文化发展公司

主頁(yè) > 知識(shí)庫(kù) > jsp按格式導(dǎo)出doc文件實(shí)例詳解

jsp按格式導(dǎo)出doc文件實(shí)例詳解

熱門標(biāo)簽:團(tuán)購(gòu)網(wǎng)站 Linux服務(wù)器 電子圍欄 Mysql連接數(shù)設(shè)置 銀行業(yè)務(wù) 阿里云 科大訊飛語(yǔ)音識(shí)別系統(tǒng) 服務(wù)器配置

jsp按格式導(dǎo)出doc文件實(shí)例詳解

原理:doc文件其實(shí)可以保存為xml文件,該xml文件用字符串表示了doc文件的表現(xiàn)形式,我們只需要用Java將那些要填的內(nèi)容替換掉然后下載給客戶就行了。

1.首先是按照你的文檔填寫好數(shù)據(jù)。
2.將文檔另存為xml文件,然后編輯該xml文件,將填好的內(nèi)容用某種格式替換,如:將名字張三替換成${name}
3.讀取文件,將文件中的${name}替換成真正的名字。
4.下載。

接下來(lái)看代碼:

首先是那個(gè)轉(zhuǎn)換類

package com.my.util;

import java.io.BufferedReader;
import java.io.ByteArrayInputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.UnsupportedEncodingException;
import java.util.Iterator;
import java.util.Map;

public class DowloadDocByTemplate {

  public InputStream dowload(String templatePath,Map map) throws IOException{
    
    File file = new File(templatePath);
    StringBuffer sb = new StringBuffer();
      BufferedReader br;
        br = new BufferedReader(new InputStreamReader(new FileInputStream(file),"UTF-8"));
        String s;
        while ((s = br.readLine()) != null) {
          sb.append(s);
          
        }
        br.close();
         s = sb.toString();
          IteratorString> keys = map.keySet().iterator();
          while(keys.hasNext()) {
            String key = (String) keys.next();
            s=s.replace(key, (String) map.get(key));
         }

          return new ByteArrayInputStream(s.getBytes("UTF-8"));
  }
}
  

然后是action:

/**
   * 檢查下載權(quán)限
   * @return
   */
  public String downLoadcheck(){
    
    return SUCCESS;
  }
  
  public String getTargetFileName(){
    
    return "zengguoqg.doc";
  }
  public InputStream getInputStream(){
    //ExportToWordUtil etw = new ExportToWordUtil();
    StringBuffer carnumber = new StringBuffer("w:tr w:rsidR='00000000'> w:trPr> w:trHeight w:hRule='exact' w:val='482'/> /w:trPr>");
    String s1 = "w:tc>w:tcPr>w:tcW w:w=\"236\" w:type=\"dxa\"/>/w:tcPr>w:p w:rsidR=\"00000000\" w:rsidRDefault=\"009F38EE\">" +
        "w:pPr>w:rPr>w:rFonts w:hint=\"eastAsia\"/>/w:rPr>/w:pPr>w:r>" +
            "w:rPr>w:rFonts w:hint=\"eastAsia\"/>/w:rPr>w:t>";
    String number = "450981199202073518";
    char[] ch = number.toCharArray();
    for(int i =0;ich.length;i++){
      carnumber.append(s1).append(ch[i]).append("/w:t>/w:r>/w:p>/w:tc>");
      
    }
    carnumber.append("/w:tr>");
    MapString,String> map = new HashMap();
    map.put("${name}","曾強(qiáng)");
    map.put("${sex}","男");
    map.put("${writeDate}", "2014.1.2");
    map.put("${cardNumber}", "1100106");
    map.put("${personNumber}", carnumber.toString());
    map.put("${birthday}", "2014.1.2");
    map.put("${Education}", "本科");
    map.put("${marride}", "未婚");
    map.put("${comeFrom}", "廣西");
    map.put("${nation}", "漢族");
    map.put("${ResidenceAddress}", "廣西");
    map.put("${PostalCode}", "543002");
    map.put("${QQ}", "1104566175");
    map.put("${job}", "軟件工程師");
    map.put("${politicalStatus}", "政治面貌");
    map.put("${GraduateSchool}", "學(xué)院");
    map.put("${professional}", "軟件工程");
    map.put("${beginWorkTime}", "2014.1.2");
    map.put("${bankCarNumber}", "622709");
    map.put("${emergencyContactPerson}", "曾強(qiáng)");
    map.put("${relationship}", "同學(xué)");
    map.put("${ummoveTelephone}", "0774133");
    map.put("${mobilePhone}", "1350335");
    map.put("${adreess}", "廣西");
    map.put("${mainExperience}", "無(wú)工作");
    map.put("${favoriteAndGoodAt}", "喜歡打籃球");
    
    
    String path = ServletActionContext.getServletContext().getRealPath("/fileTemplate/renyuandengjibiao2.xml");
    System.out.println(path);
    
    //return etw.export(path, "test.xml", map, "out.doc");
    try {
      return new DowloadDocByTemplate().dowload(path, map);
    } catch (IOException e) {
      // TODO Auto-generated catch block
      e.printStackTrace();
      return null;
    }
  }
  
}

最后是Strut配置下載: 

package name="dowload" extends="struts-default">
    action name="dowload" class="zhaopingAction" method="downLoadcheck">
    result name="success" type="stream">
     param name="contentType">application/ZIP/param>!--默認(rèn)為 text/plain-->    
     param name="inputName">inputStream/param>  
     param name="contentDisposition">filename="${targetFileName}"/param>    
     param name="bufferSize">4096/param>!-- 輸出時(shí)緩沖區(qū)的大小 -->    
    /result>
    /action>

完了,就這些了。xml文件我放在WebRoot/fileTemplate/renyuandengjibiao2.xml。

如有疑問(wèn),請(qǐng)留言或者到本站社區(qū)交流討論,感謝閱讀,希望能幫助到大家,謝謝大家對(duì)本站的支持!

您可能感興趣的文章:
  • jsp頁(yè)面驗(yàn)證碼完整實(shí)例
  • JSP實(shí)用教程之簡(jiǎn)易文件上傳組件的實(shí)現(xiàn)方法(附源碼)
  • JSP實(shí)用教程之簡(jiǎn)易圖片驗(yàn)證碼的實(shí)現(xiàn)方法(附源碼)
  • JSP中springmvc配置validator的注意事項(xiàng)
  • JSP 開(kāi)發(fā)之Spring Boot 動(dòng)態(tài)創(chuàng)建Bean
  • 詳解SpringBoot集成jsp(附源碼)+遇到的坑
  • 運(yùn)用JSP+ajax實(shí)現(xiàn)分類查詢功能的實(shí)例代碼

標(biāo)簽:蚌埠 衢州 衡水 江蘇 廣元 萍鄉(xiāng) 大理 棗莊

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《jsp按格式導(dǎo)出doc文件實(shí)例詳解》,本文關(guān)鍵詞  ;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 收縮
    • 微信客服
    • 微信二維碼
    • 電話咨詢

    • 400-1100-266
    荥阳市| 梅州市| 葵青区| 徐水县| 石林| 宁明县| 南城县| 通辽市| 津市市| 万载县| 孝义市| 昌图县| 河池市| 凌海市| 措勤县| 阿尔山市| 洪雅县| 永平县| 长丰县| 玉环县| 井冈山市| 宽城| 赫章县| 玛沁县| 罗平县| 黑水县| 武平县| 胶南市| 西青区| 璧山县| 汶上县| 云南省| 旌德县| 来宾市| 清涧县| 资溪县| 安龙县| 佛学| 东城区| 襄汾县| 军事|