jsp按格式导出doc文件实例详解
发布时间 - 2026-01-11 02:31:21 点击率:次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实现分类查询功能的实例代码
# 广西
# 汉族
# 替换成
# 文档
# 放在
# 如有
# 只需
# 希望能
# 要用
# 软件工程
# 谢谢大家
# 另存为
# 写好
# 表现形式
# 保存为
# 打篮球
# 给客户
# 默认为
# 填好
# 就行了
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
Laravel Octane如何提升性能_使用Laravel Octane加速你的应用
Laravel怎么实现验证码(Captcha)功能
Laravel如何升级到最新的版本_Laravel版本升级流程与兼容性处理
如何为不同团队 ID 动态生成多个独立按钮
Windows驱动无法加载错误解决方法_驱动签名验证失败处理步骤
如何快速搭建虚拟主机网站?新手必看指南
简单实现jsp分页
Laravel如何实现密码重置功能_Laravel密码找回与重置流程
javascript中数组(Array)对象和字符串(String)对象的常用方法总结
网站制作软件有哪些,制图软件有哪些?
如何用虚拟主机快速搭建网站?详细步骤解析
Laravel软删除怎么实现_Laravel Eloquent SoftDeletes功能使用教程
Laravel Docker环境搭建教程_Laravel Sail使用指南
微信小程序 闭包写法详细介绍
Laravel路由怎么定义_Laravel核心路由系统完全入门指南
如何快速搭建高效WAP手机网站?
Laravel如何实现用户角色和权限系统_Laravel角色权限管理机制
Laravel怎么在Blade中安全地输出原始HTML内容
Laravel如何处理JSON字段的查询和更新_Laravel JSON列操作与查询技巧
Win11怎么更改系统语言为中文_Windows11安装语言包并设为显示语言
如何快速选择适合个人网站的云服务器配置?
iOS正则表达式验证手机号、邮箱、身份证号等
如何在HTML表单中获取用户输入并用JavaScript动态控制复利计算循环
如何获取PHP WAP自助建站系统源码?
长沙企业网站制作哪家好,长沙水业集团官方网站?
javascript中的try catch异常捕获机制用法分析
ChatGPT怎么生成Excel公式_ChatGPT公式生成方法【指南】
Laravel如何使用软删除(Soft Deletes)功能_Eloquent软删除与数据恢复方法
如何撰写建站申请书?关键要点有哪些?
制作网站软件推荐手机版,如何制作属于自己的手机网站app应用?
Laravel模型事件有哪些_Laravel Model Event生命周期详解
Laravel怎么清理缓存_Laravel optimize clear命令详解
如何在香港免费服务器上快速搭建网站?
JavaScript常见的五种数组去重的方式
html5如何设置样式_HTML5样式设置方法与CSS应用技巧【教程】
PHP的CURL方法curl_setopt()函数案例介绍(抓取网页,POST数据)
Windows Hello人脸识别突然无法使用
如何解决hover在ie6中的兼容性问题
Laravel如何处理异常和错误?(Handler示例)
Laravel怎么多语言本地化设置_Laravel语言包翻译与Locale动态切换【手册】
如何在云主机上快速搭建多站点网站?
Laravel怎么做缓存_Laravel Cache系统提升应用速度的策略与技巧
🚀拖拽式CMS建站能否实现高效与个性化并存?
JS中使用new Date(str)创建时间对象不兼容firefox和ie的解决方法(两种)
JS经典正则表达式笔试题汇总
Laravel队列任务超时怎么办_Laravel Queue Timeout设置详解
1688铺货到淘宝怎么操作 1688一键铺货到自己店铺详细步骤
laravel怎么配置和使用PHP-FPM来优化性能_laravel PHP-FPM配置与性能优化方法
Laravel如何生成URL和重定向?(路由助手函数)
网站制作报价单模板图片,小松挖机官方网站报价?

