小弟求一个将从数据库查询出来的数据集合导出到execl的代码,希望在点击弹出时有下载框提示。谢谢各位了
解决方案 »
- JAVA WEB项目如何获取控制台输出??
- 【java执行shell脚本问题,高分请教】
- ajax的火狐浏览器问题
- resin做服务,配置servlet总提示错误!望高手指点,在线等,急!
- tomcat启动问题~~在线等
- 帮帮忙????struts问题!
- 想找个开源的OA用用,哪位知道?多多指点哦.重谢!
- 怎么用eclipse+jboss 开发servlet 急!
- 请问我用Jbuilder作了一个JavaBean的jdbc访问数据库的一个程序,请问如何将其放置到实际的环境下呢?需要注意些什么问题?
- 某大公司的人说:国内公司很少真正用EJB做东西的,尤其是实体bean。真的这样吗?
- JAVA资深大牛麻烦进下,问个问题
- 我想问下java与php之间的关系
response.setHeader("Content-disposition", "attachment; filename=print_tmp.xls");
当浏览器访问页面的时候。就会给出可以下载excel的提示框。
*
*/
private static final long serialVersionUID = 1L; @Override
public void init() throws ServletException {
super.init(); ServletContext servletContext = this.getServletContext(); WebApplicationContext ctx = WebApplicationContextUtils
.getWebApplicationContext(servletContext); hibernateTemplate = (HibernateTemplate) ctx
.getBean("hibernateTemplate");
} HibernateTemplate hibernateTemplate; public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doPost(request, response); } @SuppressWarnings("unchecked")
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException { try {
request.setCharacterEncoding("UTF-8");
response.setCharacterEncoding("UTF-8");
//PrintWriter out = response.getWriter();
String userid = request.getParameter("userid");
List<Users> list = new ArrayList<Users>();
List<Users> list1 = null;
Users user = new Users();
String[] arr;
arr = userid.split(",");
for (int i = 0; i < arr.length; i++) {
if (arr[i] != "") {
try {
list1 = this.hibernateTemplate
.find("from Users where userid='" + arr[i] + "'");
for (Users users : list1) {
user = users;
}
} catch (Exception e) {
e.printStackTrace();
}
}
list.add(user);
}
UsersExportExcel uee = new UsersExportExcel();
String path = getServletContext().getRealPath("/") + "excel";
File temp = new File(path);
if (!temp.exists()) {
temp.mkdirs();
}
path = path + File.separator + "用户信息表.xls";
FileOutputStream outfile = new FileOutputStream(path); uee.export(list, outfile); //调用导出
File file = new File(path);
BufferedInputStream inputStream = new BufferedInputStream(
new FileInputStream(file));
response.reset();
response.setContentType("application/x-msdownload");
response.addHeader("Content-Disposition",
"attachment;filename=ExamArrange.xls");
byte[] by = new byte[2048];
int len = 0;
while((len=(inputStream.read(by)))>0){
response.getOutputStream().write(by,0,len);
//out.clear();
//out=pageContext.pushBody();
}
inputStream.close();
if(file.isFile() && file.exists()){
file.delete();
}
} catch (Exception e) {
e.printStackTrace();
} }public class UsersExportExcel {
public static void export(List<Users> list,FileOutputStream os) throws Exception{
jxl.write.WritableWorkbook wwb = Workbook.createWorkbook(os);
WritableSheet ws = wwb.createSheet("用户信息表", 0);
jxl.write.Label labelC;
WritableFont wfont = new WritableFont(WritableFont.ARIAL, 16,
WritableFont.BOLD, false,
jxl.format.UnderlineStyle.NO_UNDERLINE,
jxl.format.Colour.BLACK);
// excel 表头
labelC = new jxl.write.Label(0, 0, "序号");
ws.addCell(labelC); // 写入excel
labelC = new jxl.write.Label(1, 0, "用户名");
ws.addCell(labelC);
labelC = new jxl.write.Label(2, 0, "密码");
ws.addCell(labelC);
labelC = new jxl.write.Label(3, 0, "姓名");
ws.addCell(labelC);
labelC = new jxl.write.Label(4, 0, "性别");
ws.addCell(labelC);
labelC = new jxl.write.Label(5, 0, "是否付费");
ws.addCell(labelC);
labelC = new jxl.write.Label(6, 0, "邮箱");
ws.addCell(labelC);
labelC = new jxl.write.Label(7, 0, "出生年月");
ws.addCell(labelC);
labelC = new jxl.write.Label(8, 0, "出生地");
ws.addCell(labelC);
labelC = new jxl.write.Label(9, 0, "居住地");
ws.addCell(labelC);
labelC = new jxl.write.Label(10, 0, "学历");
ws.addCell(labelC);
labelC = new jxl.write.Label(11, 0, "职业状态");
ws.addCell(labelC);
labelC = new jxl.write.Label(12, 0, "职业");
ws.addCell(labelC);
labelC = new jxl.write.Label(13, 0, "行业");
ws.addCell(labelC);
labelC = new jxl.write.Label(14, 0, "毕业院校");
ws.addCell(labelC);
labelC = new jxl.write.Label(15, 0, "就业年份");
ws.addCell(labelC);
labelC = new jxl.write.Label(16, 0, "专业");
ws.addCell(labelC);
labelC = new jxl.write.Label(17, 0, "报告类型");
ws.addCell(labelC);
labelC = new jxl.write.Label(18, 0, "登录时间");
ws.addCell(labelC);
labelC = new jxl.write.Label(19, 0, "毕业院校");
ws.addCell(labelC);
labelC = new jxl.write.Label(20, 0, "测试时间");
ws.addCell(labelC);
labelC = new jxl.write.Label(21, 0, "测试结果");
ws.addCell(labelC);
labelC = new jxl.write.Label(22, 0, "用户类型");
ws.addCell(labelC);
labelC = new jxl.write.Label(23, 0, "注册时间");
ws.addCell(labelC);
int i = 1; // 定义 excel 行号,从第二行开始。
int j = 0; // 定义 excel 列号
for (Users users : list) {
// 第一列
labelC = new jxl.write.Label(j, i, users.getUserid()+"");
ws.addCell(labelC);
// 第二列
j += 1;
labelC = new jxl.write.Label(j, i, users.getLogin_name());
ws.addCell(labelC);
// 第三列
j += 1;
labelC = new jxl.write.Label(j, i,users.getLogin_pass());
ws.addCell(labelC);
j += 1;
labelC = new jxl.write.Label(j, i,users.getUsername());
ws.addCell(labelC);
j += 1;
labelC = new jxl.write.Label(j, i,users.getSex());
ws.addCell(labelC);
j += 1;
labelC = new jxl.write.Label(j, i,users.getIsfree()+"");
ws.addCell(labelC);
j += 1;
labelC = new jxl.write.Label(j, i,users.getEmail());
ws.addCell(labelC);
j += 1;
//jxl.write.DateTime labelc = new jxl.write.DateTime(j,i,users.getBirthday());
labelC = new jxl.write.Label(j, i,users.getBirthday()+"");
ws.addCell(labelC);
j += 1;
labelC = new jxl.write.Label(j, i,users.getBirth_address());
ws.addCell(labelC);
j += 1;
labelC = new jxl.write.Label(j, i,users.getAddress());
ws.addCell(labelC);
j += 1;
labelC = new jxl.write.Label(j, i,users.getDegree());
ws.addCell(labelC);
j += 1;
labelC = new jxl.write.Label(j, i,users.getProfession_state());
ws.addCell(labelC);
j += 1;
labelC = new jxl.write.Label(j, i,users.getProfession());
ws.addCell(labelC);
j += 1;
labelC = new jxl.write.Label(j, i,users.getSector());
ws.addCell(labelC);
j += 1;
labelC = new jxl.write.Label(j, i,users.getCollege());
ws.addCell(labelC);
j += 1;
labelC = new jxl.write.Label(j, i,users.getJob_date()+"");
ws.addCell(labelC);
j += 1;
labelC = new jxl.write.Label(j, i,users.getSubject());
ws.addCell(labelC);
j += 1;
labelC = new jxl.write.Label(j, i,users.getType_report());
ws.addCell(labelC);
j += 1;
labelC = new jxl.write.Label(j, i,users.getLogin_time()+"");
ws.addCell(labelC);
j += 1;
labelC = new jxl.write.Label(j, i,users.getCollege());
ws.addCell(labelC);
j += 1;
labelC = new jxl.write.Label(j, i,users.getTest_time()+"");
ws.addCell(labelC);
j += 1;
labelC = new jxl.write.Label(j, i,users.getScore());
ws.addCell(labelC);
j += 1;
labelC = new jxl.write.Label(j, i,users.getUserType());
ws.addCell(labelC);
j += 1;
labelC = new jxl.write.Label(j, i,users.getRegister_date()+"");
ws.addCell(labelC);
// 下一行
i += 1;
// 重置为第一列
j = 0;
}
wwb.write();
// 关闭Excel工作薄对象
wwb.close();
}
}能够导出,但是不弹出下载框提示,求解答??