全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

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();
          Iterator<String> 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 = "450981199202573518";
    char[] ch = number.toCharArray();
    for(int i =0;i<ch.length;i++){
      carnumber.append(s1).append(ch[i]).append("</w:t></w:r></w:p></w:tc>");
      
    }
    carnumber.append("</w:tr>");
    Map<String,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按格式导出doc文件  # jsp按格式导出doc文件的实现  # jsp导出doc文件  # jsp页面验证码完整实例  # JSP实用教程之简易文件上传组件的实现方法(附源码)  # JSP实用教程之简易图片验证码的实现方法(附源码)  # JSP中springmvc配置validator的注意事项  # JSP 开发之Spring Boot 动态创建Bean  # 详解SpringBoot集成jsp(附源码)+遇到的坑  # 运用JSP+ajax实现分类查询功能的实例代码  # 广西  # 汉族  # 替换成  # 文档  # 放在  # 如有  # 只需  # 希望能  # 要用  # 软件工程  # 谢谢大家  # 另存为  # 写好  # 表现形式  # 保存为  # 打篮球  # 给客户  # 默认为  # 填好  # 就行了 


相关文章: 油猴 教程,油猴搜脚本为什么会网页无法显示?  建站之星各版本价格是多少?  建站主机SSH密钥生成步骤及常见问题解答?  高防服务器租用首荐平台,企业级优惠套餐快速部署  广平建站公司哪家专业可靠?如何选择?  建站中国官网:模板定制+SEO优化+建站流程一站式指南  香港服务器网站搭建教程-电商部署、配置优化与安全稳定指南  韩国网站服务器搭建指南:VPS选购、域名解析与DNS配置推荐  专业制作网站的公司哪家好,建立一个公司网站的费用.有哪些部分,分别要多少钱?  建站之星后台管理系统如何操作?  制作电商网页,电商供应链怎么做?  建站主机无法访问?如何排查域名与服务器问题  如何快速选择适合个人网站的云服务器配置?  用v-html解决Vue.js渲染中html标签不被解析的问题  制作网站建设的公司有哪些,网站建设比较好的公司都有哪些?  b2c电商网站制作流程,b2c水平综合的电商平台?  为什么Go需要go mod文件_Go go mod文件作用说明  如何通过西部建站助手安装IIS服务器?  想学网站制作怎么学,建立一个网站要花费多少?  如何在Golang中引入测试模块_Golang测试包导入与使用实践  建站与域名管理如何高效结合?  如何优化Golang Web性能_Golang HTTP服务器性能提升方法  临沂网站制作企业,临沂第三中学官方网站?  建站主机是否等同于虚拟主机?  建站之星IIS配置教程:代码生成技巧与站点搭建指南  网站制作难吗安全吗,做一个网站需要多久时间?  海南网站制作公司有哪些,海口网是哪家的?  红河网站制作公司,红河事业单位身份证如何上传?  安徽网站建设与外贸建站服务专业定制方案  已有域名建站全流程解析:网站搭建步骤与建站工具选择  公司网站设计制作厂家,怎么创建自己的一个网站?  网站制作的步骤包括,正确网址格式怎么写?  制作无缝贴图网站有哪些,3dmax无缝贴图怎么调?  如何配置FTP站点权限与安全设置?  手机钓鱼网站怎么制作视频,怎样拦截钓鱼网站。怎么办?  SAX解析器是什么,它与DOM在处理大型XML文件时有何不同?  焦点电影公司作品,电影焦点结局是什么?  建站之星后台搭建步骤解析:模板选择与产品管理实操指南  建站之星24小时客服电话如何获取?  手机网站制作平台,手机靓号代理商怎么制作属于自己的手机靓号网站?  学校为何禁止电信移动建设网站?  如何制作新型网站程序文件,新型止水鱼鳞网要拆除吗?  C++如何编写函数模板?(泛型编程入门)  如何在服务器上配置二级域名建站?  网站制作中优化长尾关键字挖掘的技巧,建一个视频网站需要多少钱?  潮流网站制作头像软件下载,适合母子的网名有哪些?  专业商城网站制作公司有哪些,pi商城官网是哪个?  香港服务器建站指南:外贸独立站搭建与跨境电商配置流程  C#如何使用XPathNavigator高效查询XML  如何快速搭建安全的FTP站点? 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。