`
hbxflihua
  • 浏览: 682712 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

java导出word

    博客分类:
  • java
 
阅读更多

实现导出功能,多数人都会选择一些热门的框架来完成。这样做无可厚非。但有些时候,只为一些简单的导出引入一个框架来说有点儿用牛刀杀鸡的感觉。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"/>&nbsp;&nbsp;
					<input type="button" class="btn" value="打印" title="打印" style="width:60px" onclick="printInfo()"/>&nbsp;&nbsp;				
				</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有毛关系?创建一个空文档很爽么?
3 楼 ycyangcai 2013-09-09  
如果要导出带个网页怎么办?要好看的格式
2 楼 J2EE&forever 2013-07-09  
这导出word有毛关系,我擦
1 楼 madera 2013-02-05  
这和应该换个标题,叫导出文件...

相关推荐

    JAVA 导出WORD

    此外,描述中提到的"完整的JAVA导出WORD源代码,解压即可运行"意味着提供的压缩包可能包含一个完整的Java项目,用户只需要解压并运行即可体验或学习如何使用Jacob库进行Word文档操作。这个项目可能包括了构建文件...

    java导出word文档,固定模板

    Java 导出Word文档是一项常见的任务,特别是在企业级应用中,比如报告生成、合同模板等。本教程将重点介绍如何利用Freemarker技术实现这一功能,特别是如何将Word模板转化为可编程填充的数据模板。 首先,让我们...

    java导出word文档

    Java 导出 Word 文档是一项常见的任务,在许多企业级应用中都有所应用,例如报告生成、数据导出等。在本教程中,我们将探讨如何利用 FreeMarker 模板引擎来实现这一功能。FreeMarker 是一个强大的、开源的模板语言,...

    Java导出Word文档的实现.docx

    在Java开发中,导出Word文档是一项常见的任务,尤其在生成报表、报告或者合同等场合。本文将探讨如何使用Java高效地实现Word文档导出,主要聚焦于利用XDocReport和FreeMarker模板引擎的方式。 首先,Java中导出Word...

    Java导出Word文件

    首先,Java导出Word文件通常有两种方式:一是使用Apache POI库,二是使用JODConverter库。Apache POI是广泛使用的开源库,它允许Java程序员创建、修改和显示Microsoft Office格式的文件,包括Word(.doc和.docx)。...

    java数据源导出WORD文档(包括图片、表格及文本)

    最近因项目开发的需要,整理了一份用JAVA导出WORD文档,其部署步骤如下: 1、将jacob-1.14.3-x86.dll放在服务器的系统盘(或运行本机的系统):\WINDOWS\system32目录下。 2、将jacob-1.14.3-x86.dll放在JDK 的 bin ...

    java生成word的实例 java导出Word文档的实例

    在Java编程中,生成Word文档是一项常见的需求,例如在企业级应用中用于生成报告、合同或者数据导出等。这个实例将带你了解如何在Java环境中使用API来创建和导出Word文档。以下是一些关键的知识点: 1. **Apache POI...

    Java导出Word及工具

    总之,Java导出Word文档主要依赖于如Apache POI这样的第三方库,通过这些库提供的API,你可以轻松地创建、编辑和导出复杂的Word文档。在实际项目中,你可以根据需求选择合适的库,并结合示例代码和说明来实现所需...

    Java使用POI导出Word文档

    Java使用Apache POI库导出Word文档是一种常见的技术实践,特别是在企业级应用中,用于生成报告、合同或者自定义的数据输出。Apache POI是Apache软件基金会的一个开源项目,它提供了处理Microsoft Office格式(如Word...

    java导出word文档相关jar

    Java导出Word文档是开发过程中常见的一项任务,尤其在企业级应用中,为了实现数据的导出和报告生成,这项技术尤为重要。Apache POI库是一个强大的开源项目,它提供了读写Microsoft Office格式文件的能力,包括Word...

    java导出word模板

    Java导出Word模板技术主要涉及的是在编程环境中利用特定库生成动态文档的能力。在这个场景中,我们看到一个道路案卷管理系统的例子,其中涉及到的数据字段是通过Java代码动态填充到Word模板中的。以下是对这个话题的...

    java导出word并插入图片

    在Java编程环境中,导出Word文档并插入图片是一项常见的任务,尤其在自动化报告生成、数据可视化或文档处理的场景中。下面将详细讲解如何使用Java实现这个功能。 首先,我们需要一个能够操作Word文档的库。Apache ...

    java导出图片到word文档

    在Java编程中,将图片导出到Word文档是一项常见的任务,尤其在自动化报告生成或数据可视化等场景下。本文将详细介绍如何使用Java实现这一功能,包括必要的库、步骤以及可能出现的问题。 首先,我们需要一个能够处理...

    java生成word的实例 java导出Word文档的实例.rar

    在Java编程环境中,生成Word文档是一项常见的需求,特别是在企业级应用中,如报告生成、数据导出等场景。本实例将探讨如何使用Java技术来创建和导出Word文档。主要涉及的技术栈包括Apache POI库,它是一个强大的API...

    java导出word、excel、pdf、txt文件,同时兼容office2003和office2007

    1. **导出Word文档**: 使用XWPFDocument类创建和操作.docx文件。你可以创建XWPFParagraphs、XWPFTables等对象,填充文本、样式、图片等信息。例如,创建一个新的Word文档并写入文本: ```java XWPFDocument ...

    java导出Word修改后缀名

    java导出文件, freemarker导出word需要ftl文件,java导出Word常见问题。2.TXT修改后缀名为.ftl

    java freemarker导出word -包含多张图片导出

    在Java应用中,使用FreeMarker导出Word文档可以提供灵活的文本和数据结合的方式,尤其适用于生成报告、合同等复杂格式的文档。本篇将详细介绍如何使用FreeMarker与Java结合来导出包含多张图片的Word文档。 1. **...

    java导出word的插件

    Java导出Word的插件是一种在Java应用程序中用于创建、编辑和导出Microsoft Word文档的工具。这种插件使得开发者能够方便地在Java环境中处理Word文档,而无需直接使用Microsoft Office套件。以下是对这个主题的详细...

    java导出word使用freemarker模板map数据导出word带图片

    java导出word使用freemarker模板map数据导出word带图片 可以循环map 中list。 调用的2种方法在博客 https://blog.csdn.net/yjflinchong/article/details/122614203

    java导出word实例

    java导出到word,进行写操作,如表格、生成图片等.

Global site tag (gtag.js) - Google Analytics