首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > Java Web开发 >

关于poi导出Excel的有关问题

2013-11-16 
关于poi导出Excel的问题。现在在做Excel的导出功能,我看了网上的论坛,都是用poi和jxl做的,综合比较了一下选

关于poi导出Excel的问题。
现在在做Excel的导出功能,我看了网上的论坛,都是用poi和jxl做的,综合比较了一下选择了poi,但是在导出demo这一块,我直接访问页面可以弹出下载框,如果结果struts2的返回跳转到该页面,则没有任何反应,有些小晕,请高手指点错误出在哪里。现在贴出代码:




<%@ page language="java" import="java.util.*"  pageEncoding="UTF-8" %>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<%@ page contentType="application/vnd.ms-excel" language="java" 
import="java.util.*,com.Export"%>
<%
response.setHeader("Content-Disposition","attachment;filename=exportdata.xls");
response.setContentType("application/vnd.ms-excel");
Export  ex = new Export(); 
 ex.buildStudentExcel("exportdata.xls",response.getOutputStream());
%>
<%
out.clear();
out=pageContext.pushBody();
%>


上面的是jsp中的代码,直接访问能弹出下载框



<action name="expExcel" class="measureAction" method="expExcel" >
  <result name="success" >/auditcheck/measure/123.jsp</result>
</action>

这是struts2中的配置,请求成功后跳到上面的jsp页面,后台执行了,但是没有弹出下载框,请问哪里出现问题了? poi
[解决办法]
例子
[解决办法]
我记得以前遇到一个算是类似的问题吧,如果这个改成action的话,
直接往返回流中写execl数据并且还有返回值的话,会出现一个异常-流冲突,
如果把返回值修改为null,就能正常返回execl表了。

[解决办法]
引用:
Quote: 引用:

我记得以前遇到一个算是类似的问题吧,如果这个改成action的话,
直接往返回流中写execl数据并且还有返回值的话,会出现一个异常-流冲突,
如果把返回值修改为null,就能正常返回execl表了。

不太明白,请问是把action中的返回值改为null嘛?如果action中的返回值改为null,struts2怎么知道要跳转到哪个页面呢?

那么页面就不会跳转,而是直接返回一个execl报表。
如果想既跳转并且返回execl报表的话可以尝试两次请求。
我记得当初我错误的原因是生成一个out流,这个流与jsp自身的输出流冲突。
你先看看是不是这个原因,先找我说的试试,如果能返回execl表了再说。
[解决办法]
你是怎么确定成功跳转到这个页面的,你弹出框是怎么写的,有js错误吗?
[解决办法]
我你这是struts2的问题 不是poi的问题
[解决办法]
class="measureAction" 这个是不是要写包全名啊
[解决办法]
POI生成excel弹出框是response出来的,那么你的struts不需要做任何的跳转
[解决办法]
数据写完,记得关闭输出流,不然页面不会有反应
[解决办法]
response.setHeader("Content-Disposition","attachment;filename=exportdata.xls");     response.setContentType("application/vnd.ms-excel"); 
这两句应该写到你的action的方法里

热点排行