• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    jsp按格式导出doc文件实例详解

    jsp按格式导出doc文件实例详解

    原理:doc文件其实可以保存为xml文件,该xml文件用字符串表示了doc文件的表现形式,我们只需要用Java将那些要填的内容替换掉然后下载给客户就行了。

    1.首先是按照你的文档填写好数据。
    2.将文档另存为xml文件,然后编辑该xml文件,将填好的内容用某种格式替换,如:将名字张三替换成${name}
    3.读取文件,将文件中的${name}替换成真正的名字。
    4.下载。

    接下来看代码:

    首先是那个转换类

    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:

    /**
       * 检查下载权限
       * @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}","曾强");
        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}", "学院");
        map.put("${professional}", "软件工程");
        map.put("${beginWorkTime}", "2014.1.2");
        map.put("${bankCarNumber}", "622709");
        map.put("${emergencyContactPerson}", "曾强");
        map.put("${relationship}", "同学");
        map.put("${ummoveTelephone}", "0774133");
        map.put("${mobilePhone}", "1350335");
        map.put("${adreess}", "广西");
        map.put("${mainExperience}", "无工作");
        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>!--默认为 text/plain-->    
         param name="inputName">inputStream/param>  
         param name="contentDisposition">filename="${targetFileName}"/param>    
         param name="bufferSize">4096/param>!-- 输出时缓冲区的大小 -->    
        /result>
        /action>
    

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

    如有疑问,请留言或者到本站社区交流讨论,感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

    您可能感兴趣的文章:
    • jsp页面验证码完整实例
    • JSP实用教程之简易文件上传组件的实现方法(附源码)
    • JSP实用教程之简易图片验证码的实现方法(附源码)
    • JSP中springmvc配置validator的注意事项
    • JSP 开发之Spring Boot 动态创建Bean
    • 详解SpringBoot集成jsp(附源码)+遇到的坑
    • 运用JSP+ajax实现分类查询功能的实例代码
    上一篇:jsp页面验证码完整实例
    下一篇:读取数据库的数据并整合成3D饼图在jsp中显示详解
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    jsp按格式导出doc文件实例详解 jsp,按,格式,导出,doc,文件,