struts2 中要在jsp页面上实现把数据库中的数据导成excel,在页面上点击导出时excel时,弹出下载保存框。 5

已经在java应用程序中实现导出,采用的是jxl包,只是转到javaweb时,不知道怎么做?最好有例子。... 已经在java应用程序中实现导出,采用的是jxl包,只是转到javaweb时,不知道怎么做?
最好有例子。
展开
 我来答
百度网友f12c7342e
2012-01-05
知道答主
回答量:46
采纳率:0%
帮助的人:27.9万
展开全部
我用的strtus2 把Action中的代码贴一下 这个简单的示例可以参考下

package com.aneel.xdh.action;

import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.List;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import jxl.Workbook;
import jxl.write.Label;
import jxl.write.WritableSheet;
import jxl.write.WritableWorkbook;
import jxl.write.WriteException;
import jxl.write.biff.RowsExceededException;

import org.apache.struts2.interceptor.ServletRequestAware;
import org.apache.struts2.interceptor.ServletResponseAware;

import com.opensymphony.xwork2.ActionSupport;

public class OutputExcelAction extends ActionSupport implements
ServletResponseAware, ServletRequestAware {

protected HttpServletRequest request = null;
protected HttpServletResponse response = null;

public void setServletResponse(HttpServletResponse resp) {
this.response = resp;
}

public void setServletRequest(HttpServletRequest req) {
this.request = req;
}

// 获取输出流
public InputStream getInputExcel() {
return (InputStream) request.getAttribute("excelStream");
}

@Override
public String execute() {
List<String> list = new ArrayList<String>();
list.add("张三");
list.add("李四");
if (list != null) {
int rows = 0;
ByteArrayOutputStream os = new ByteArrayOutputStream();
WritableWorkbook book;
try {
book = Workbook.createWorkbook(os);//创建工作簿
WritableSheet sheet = book.createSheet("第一页", rows);
for (int i = 0; i < list.size(); i++) {
Label label1 = new Label(0, i, String.valueOf(i));
Label label2 = new Label(1, i, list.get(i));
sheet.addCell(label1);
sheet.addCell(label2);
}
book.write();
book.close();
request.setAttribute("excelStream", new ByteArrayInputStream(os
.toByteArray()));
request.setAttribute("filename", "myexcel.xls");//设置文件名
return "success";
} catch (IOException e) {
e.printStackTrace();
return "error";
} catch (RowsExceededException e) {
e.printStackTrace();
return "error";
} catch (WriteException e) {
e.printStackTrace();
return "error";
}
}else{
System.out.println("统计数据不存在");
return "error";
}
}
}

一个测试的页面
<a href="download.action">click here</a>
struts 的Action就没什么好贴的了

还有其他别的方法 可以去网上找一下 找到好的方法发我一个
xdh725@126.com 这是我邮箱
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
txtdown99
2011-12-31 · TA获得超过1223个赞
知道小有建树答主
回答量:421
采纳率:100%
帮助的人:153万
展开全部
struts1我做过一个类似的。用jxl导入excel文件,获取里面的信息并修改,再将修改后的excel导出。struts2就不知道了。
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
daxue360_cn
2012-01-01
知道答主
回答量:19
采纳率:0%
帮助的人:21.8万
展开全部
你在配置文件里面,配置下输出的形式,输出流就可以了!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式