- 浏览: 676804 次
- 性别:
- 来自: 杭州
文章分类
- 全部博客 (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 1973package com.huatech.gateway.f ... -
logback 常用配置及说明
2020-05-28 15:41 692<?xml version="1.0& ... -
springboot中增强druid实现数据库账号密码加解密
2020-03-11 13:31 1522针对目前越来越严的安全等级要求,我们在做产品 ... -
java常用命令
2020-01-14 13:25 1065# 1、查询java进程id jps -v ... -
poi excel导入工具类
2019-11-20 14:00 697poi excel导入工具类ImportUtil i ... -
通过spring-context创建可执行jar
2019-04-23 13:52 10771、新建一个maven工程; 2、pom.xml中 ... -
什么情况下Java程序会产生死锁?如何定位和修复死锁
2019-04-18 20:38 1417死锁是一种特定的程序状态,在实体之间,由于循环依赖导致彼此 ... -
反射机制和动态代理的原理
2019-04-13 14:02 1988反射机制是Java语言提供的一种基础功能,赋予程序在运行时 ... -
String、StringBuffer、StringBuilder的区别?
2019-04-13 10:00 743Java的基本类型有八种 ... -
强引用、软引用、弱引用、幻象引用有什么区别?具体使用场景是什么?
2019-04-12 15:10 746在 Java 语言中,除了原始数据类型的变量,其他 ... -
Exception与Error的区别?
2019-04-11 09:25 554Java语言在设计之初就 ... -
应用国际化(3)
2018-12-27 21:13 819前两篇介绍了应用国际化的注意事项和提示语国际化的简单实现。后 ... -
应用国际化(2)
2018-12-26 20:39 792上一篇介绍了应用国际化需要考虑的问题,本篇介绍后端如何实现 ... -
应用国际化(1)
2018-12-26 20:08 822最近在做数字资产交 ... -
性能优化实战-2
2018-09-28 10:15 1162我们在做架构设计的时候,会提到几个关键词:高性能、高 ... -
性能优化实战-1
2018-09-27 20:04 1102系统优化大致可以分 ... -
rabbitmq批量处理
2018-04-08 17:35 9422我们通过spring-amqp操作rabbitmq是极其简 ... -
java进程CPU过高问题定位
2018-03-14 09:06 22921、top命令查看过高CPU的pid,命令:top ... -
spring-boot集成RabbitMQ
2018-01-16 16:38 1303RabbitMQ的安装不在此赘述,想了解的可以参考: ... -
重写DispatcherServlet获取springmvc 所有RequestMapping的url
2018-01-09 10:41 30371、重写DispatcherServlet i ...
相关推荐
此外,描述中提到的"完整的JAVA导出WORD源代码,解压即可运行"意味着提供的压缩包可能包含一个完整的Java项目,用户只需要解压并运行即可体验或学习如何使用Jacob库进行Word文档操作。这个项目可能包括了构建文件...
Java 导出Word文档是一项常见的任务,特别是在企业级应用中,比如报告生成、合同模板等。本教程将重点介绍如何利用Freemarker技术实现这一功能,特别是如何将Word模板转化为可编程填充的数据模板。 首先,让我们...
Java 导出 Word 文档是一项常见的任务,在许多企业级应用中都有所应用,例如报告生成、数据导出等。在本教程中,我们将探讨如何利用 FreeMarker 模板引擎来实现这一功能。FreeMarker 是一个强大的、开源的模板语言,...
在Java开发中,导出Word文档是一项常见的任务,尤其在生成报表、报告或者合同等场合。本文将探讨如何使用Java高效地实现Word文档导出,主要聚焦于利用XDocReport和FreeMarker模板引擎的方式。 首先,Java中导出Word...
首先,Java导出Word文件通常有两种方式:一是使用Apache POI库,二是使用JODConverter库。Apache POI是广泛使用的开源库,它允许Java程序员创建、修改和显示Microsoft Office格式的文件,包括Word(.doc和.docx)。...
最近因项目开发的需要,整理了一份用JAVA导出WORD文档,其部署步骤如下: 1、将jacob-1.14.3-x86.dll放在服务器的系统盘(或运行本机的系统):\WINDOWS\system32目录下。 2、将jacob-1.14.3-x86.dll放在JDK 的 bin ...
在Java编程中,生成Word文档是一项常见的需求,例如在企业级应用中用于生成报告、合同或者数据导出等。这个实例将带你了解如何在Java环境中使用API来创建和导出Word文档。以下是一些关键的知识点: 1. **Apache POI...
总之,Java导出Word文档主要依赖于如Apache POI这样的第三方库,通过这些库提供的API,你可以轻松地创建、编辑和导出复杂的Word文档。在实际项目中,你可以根据需求选择合适的库,并结合示例代码和说明来实现所需...
Java使用Apache POI库导出Word文档是一种常见的技术实践,特别是在企业级应用中,用于生成报告、合同或者自定义的数据输出。Apache POI是Apache软件基金会的一个开源项目,它提供了处理Microsoft Office格式(如Word...
Java导出Word文档是开发过程中常见的一项任务,尤其在企业级应用中,为了实现数据的导出和报告生成,这项技术尤为重要。Apache POI库是一个强大的开源项目,它提供了读写Microsoft Office格式文件的能力,包括Word...
Java导出Word模板技术主要涉及的是在编程环境中利用特定库生成动态文档的能力。在这个场景中,我们看到一个道路案卷管理系统的例子,其中涉及到的数据字段是通过Java代码动态填充到Word模板中的。以下是对这个话题的...
在Java编程环境中,导出Word文档并插入图片是一项常见的任务,尤其在自动化报告生成、数据可视化或文档处理的场景中。下面将详细讲解如何使用Java实现这个功能。 首先,我们需要一个能够操作Word文档的库。Apache ...
在Java编程中,将图片导出到Word文档是一项常见的任务,尤其在自动化报告生成或数据可视化等场景下。本文将详细介绍如何使用Java实现这一功能,包括必要的库、步骤以及可能出现的问题。 首先,我们需要一个能够处理...
在Java编程环境中,生成Word文档是一项常见的需求,特别是在企业级应用中,如报告生成、数据导出等场景。本实例将探讨如何使用Java技术来创建和导出Word文档。主要涉及的技术栈包括Apache POI库,它是一个强大的API...
1. **导出Word文档**: 使用XWPFDocument类创建和操作.docx文件。你可以创建XWPFParagraphs、XWPFTables等对象,填充文本、样式、图片等信息。例如,创建一个新的Word文档并写入文本: ```java XWPFDocument ...
java导出文件, freemarker导出word需要ftl文件,java导出Word常见问题。2.TXT修改后缀名为.ftl
在Java应用中,使用FreeMarker导出Word文档可以提供灵活的文本和数据结合的方式,尤其适用于生成报告、合同等复杂格式的文档。本篇将详细介绍如何使用FreeMarker与Java结合来导出包含多张图片的Word文档。 1. **...
Java导出Word的插件是一种在Java应用程序中用于创建、编辑和导出Microsoft Word文档的工具。这种插件使得开发者能够方便地在Java环境中处理Word文档,而无需直接使用Microsoft Office套件。以下是对这个主题的详细...
java导出word使用freemarker模板map数据导出word带图片 可以循环map 中list。 调用的2种方法在博客 https://blog.csdn.net/yjflinchong/article/details/122614203
java导出到word,进行写操作,如表格、生成图片等.