- 浏览: 661314 次
- 性别:
- 来自: 杭州
文章分类
- 全部博客 (141)
- java (58)
- SQL (7)
- java开源 (2)
- javascript (3)
- struts2 (2)
- oracle (6)
- junit (1)
- js报表 (1)
- jQuery (5)
- 插件安装 (1)
- myeclipse (1)
- xfire (1)
- weblogic (1)
- hibernate (6)
- loading (1)
- jbpm (3)
- 物语 (0)
- android (14)
- spring (20)
- BigDecimal (1)
- view (1)
- 总结 (2)
- application (1)
- Netty (5)
- aop (1)
- redis (7)
- double (1)
- restful (1)
- cache (3)
- profile (1)
- redisTemplate (1)
- poi (3)
- excel导出 (1)
- mysql (7)
- group (4)
- replication (4)
- proxysql (1)
- windows (1)
- version (1)
- mongodb (2)
- RocketMQ (1)
- MQ (1)
- RSA (1)
- 日志 (2)
- ip (1)
- socket (1)
- hibernate-validator (1)
- delayQueue (1)
- spring-retry (1)
- rabbitmq (3)
- httpclient (1)
- tools (1)
- 增量发布 (1)
- web (3)
- spring-boot (5)
- druid (2)
- pageHelper (1)
- freemarker (1)
- RequestMapping (1)
- 性能优化 (2)
- springBoot (1)
- docker (2)
- 安全 (0)
- 国际化 (3)
- websocket (1)
- stomp (1)
- shiro (1)
- 网络安全 (2)
- 锁 (1)
- logback (1)
最新评论
-
changerzhuo_319:
谢谢大佬, 查了一天了没解决
Spring-boot构建多模块依赖工程时,maven打包异常:程序包xxx不存在 -
迪伦少校:
spring越来越优秀的同时,也越来越复杂
spring核心技术(1) -
hbxflihua:
ivi13 写道这种方式会有个问题,假如有个商户的交易量特别大 ...
使用spring-retry实现支付系统异步通知 -
ivi13:
这种方式会有个问题,假如有个商户的交易量特别大,通知全部失败, ...
使用spring-retry实现支付系统异步通知 -
ckxlnd:
挺好的 有借鉴意义
重写DispatcherServlet获取springmvc 所有RequestMapping的url
实现导出功能,多数人都会选择一些热门的框架来完成。这样做无可厚非。但有些时候,只为一些简单的导出引入一个框架来说有点儿用牛刀杀鸡的感觉。java.io本事自带的导入导出功能就能够解决这些简单的问题。而且,导出框架也都是基于java.io进行的扩展。
下面简单介绍下将页面内容用java.io自带的功能实现导出。
要导出的页面内容如下:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <base target="download"/> <title> <s:property value="#request.title"/> </title> <jsp:include page="../common/meta.jsp"/> <STYLE type="text/css"> </STYLE> <script type="text/javascript"> $(function(){ $('#expinfo').val($('#s_info').html()); }); //打印2 function printInfo(){ //打印时将头尾两部分隐藏 $('#header_div').css('display','none'); window.print(); $('#header_div').css('display','block'); } </script> </head> <body> <div id="header_div"> <form name="expform" id="expform" method="post" action="${root}/jxEval/rwexp.action"> <table width="100%" cellpadding="0" cellspacing="0" border="0"> <tr style="height:30px"> <td width="6%"> <textarea name="expinfo" id="expinfo" style="display: none;" ></textarea> <!-- 导出文件名,根据导出的文件名称后缀判断导出文件类型 --> <input type="hidden" name="fileName" id="fileName" value="<s:property value="#request.title"/>.doc"> </td> <td align="right"> <input type="submit" class="btn" value="导出" title="导出Word" style="width:60px"/> <input type="button" class="btn" value="打印" title="打印" style="width:60px" onclick="printInfo()"/> </td> </tr> </table> </form> </div> <div id="s_info"> //添加导出内容部分 </div> <iframe id="download" name="download" height="0px" width="0px"></iframe> </body> </html>
这里,为了防止在导出时弹出一个页面,对页面做了如下处理:
1、在head中添加base标签
<base target="download"/>
2、在body中添加一个iframe
<iframe id="download" name="download" height="0px" width="0px"></iframe>
后台Action
private String fileName;//文件名 public String getFileName()throws Exception { return fileName; } public void setFileName(String fileName) { this.fileName = fileName; } @Override public String execute() throws Exception { String expinfo=request.getParameter("expinfo"); if(!ValidateUtil.validateString(expinfo)){ return null; } HttpServletResponse resp = ServletActionContext.getResponse(); resp.reset(); resp.setContentType("application/vnd.ms-word;charset=UTF-8"); String strFileName = FileUtil.getFilePrefix(fileName); strFileName = URLEncoder.encode(strFileName, "UTF-8"); String guessCharset = "gb2312"; strFileName = new String(strFileName.getBytes(guessCharset), "ISO8859-1"); resp.setHeader("Content-Disposition", "attachment;filename=" + strFileName + ".doc"); OutputStream os = resp.getOutputStream(); os.write(expinfo.getBytes(), 0, expinfo.getBytes().length); os.flush(); os.close(); return null; }
注意:
1、要对文件名进行编码,否则可能会出现无法导出。
2、在对outputstream执行write操作时,第三个参数请务必保持和第一个参数一致,否则可能会出现导出内容缺失的情况。
即写成
os.write(expinfo.getBytes(), 0, expinfo.getBytes().length);
而非
os.write(expinfo.getBytes(), 0, expinfo.length());
原因很简单,你懂得。
对应struts.xml文件配置
<action name="rwexp" class="com.xxx.action.RwexpAction"></action>
由于action的方法中无需返回值,这里也就无需多做配置了。
评论
4 楼
easy890819
2014-02-12
我还以为是个大神,牛的一X呢,
仔细一看才知道是个渣渣,你这跟导出word有毛关系?创建一个空文档很爽么?
仔细一看才知道是个渣渣,你这跟导出word有毛关系?创建一个空文档很爽么?
3 楼
ycyangcai
2013-09-09
如果要导出带个网页怎么办?要好看的格式
2 楼
J2EE&forever
2013-07-09
这导出word有毛关系,我擦
1 楼
madera
2013-02-05
这和应该换个标题,叫导出文件...
发表评论
-
Spring Gateway 接口返回值脱敏
2023-10-20 09:55 1606package com.huatech.gateway.f ... -
logback 常用配置及说明
2020-05-28 15:41 497<?xml version="1.0& ... -
springboot中增强druid实现数据库账号密码加解密
2020-03-11 13:31 1290针对目前越来越严的安全等级要求,我们在做产品 ... -
java常用命令
2020-01-14 13:25 736# 1、查询java进程id jps -v ... -
poi excel导入工具类
2019-11-20 14:00 500poi excel导入工具类ImportUtil i ... -
通过spring-context创建可执行jar
2019-04-23 13:52 8961、新建一个maven工程; 2、pom.xml中 ... -
什么情况下Java程序会产生死锁?如何定位和修复死锁
2019-04-18 20:38 1236死锁是一种特定的程序状态,在实体之间,由于循环依赖导致彼此 ... -
反射机制和动态代理的原理
2019-04-13 14:02 1909反射机制是Java语言提供的一种基础功能,赋予程序在运行时 ... -
String、StringBuffer、StringBuilder的区别?
2019-04-13 10:00 663Java的基本类型有八种 ... -
强引用、软引用、弱引用、幻象引用有什么区别?具体使用场景是什么?
2019-04-12 15:10 675在 Java 语言中,除了原始数据类型的变量,其他 ... -
Exception与Error的区别?
2019-04-11 09:25 496Java语言在设计之初就 ... -
应用国际化(3)
2018-12-27 21:13 726前两篇介绍了应用国际化的注意事项和提示语国际化的简单实现。后 ... -
应用国际化(2)
2018-12-26 20:39 694上一篇介绍了应用国际化需要考虑的问题,本篇介绍后端如何实现 ... -
应用国际化(1)
2018-12-26 20:08 751最近在做数字资产交 ... -
性能优化实战-2
2018-09-28 10:15 1053我们在做架构设计的时候,会提到几个关键词:高性能、高 ... -
性能优化实战-1
2018-09-27 20:04 1005系统优化大致可以分 ... -
rabbitmq批量处理
2018-04-08 17:35 9182我们通过spring-amqp操作rabbitmq是极其简 ... -
java进程CPU过高问题定位
2018-03-14 09:06 22231、top命令查看过高CPU的pid,命令:top ... -
spring-boot集成RabbitMQ
2018-01-16 16:38 1236RabbitMQ的安装不在此赘述,想了解的可以参考: ... -
重写DispatcherServlet获取springmvc 所有RequestMapping的url
2018-01-09 10:41 28281、重写DispatcherServlet i ...
相关推荐
导出Word方式多种多样,通常有以下几种方式: 1. 使用第三方Java工具类库Hutool的Word工具类,参考网址为https://www.hutool.cn/docs/#/poi/Word生成-Word07Writer; 2. 利用Apache POI和FreeMarker模板引擎; 3. ...
完整的JAVA导出WORD源代码,解压即可运行
最近因项目开发的需要,整理了一份用JAVA导出WORD文档,其部署步骤如下: 1、将jacob-1.14.3-x86.dll放在服务器的系统盘(或运行本机的系统):\WINDOWS\system32目录下。 2、将jacob-1.14.3-x86.dll放在JDK 的 bin ...
java导出文件, freemarker导出word需要ftl文件,java导出Word常见问题。2.TXT修改后缀名为.ftl
java生成word的实例 java导出Word文档的实例 项目说明
包括freemarker.jar以及使用freemarker导出work文档的方法
使用freemarker技术,首先将word模板另存为xml文档,方便填充数据。然后将后缀名改为ftl,简单方便.
java生成word的实例 java导出Word文档的实例.rar
Java 导出 Word。 可直接运行,有说明文档,有注释,有jar文件。
java:多个图片导出到word文档里显示,用于打印图片导出
java导出word的工具jar 包含:poi-scratchpad-3.9.jar poi-3.9.jar
java导出word文档 jar包
WORD导出,并插入图片
java导出word使用freemarker模板map数据导出word带图片 可以循环map 中list。 调用的2种方法在博客 https://blog.csdn.net/yjflinchong/article/details/122614203
java导出到word,进行写操作,如表格、生成图片等.
小demo,直接运行Test.java就行了 导出文件在D盘
java freemarker导出word -包含多张图片导出
可实现java导出word文档,表格,以及用itex导入所需的全部jar包
java使用word模板导出个人简历 a、处理word2003模板导出doc文件 b、处理word2007模板导出docx文件