分类
WEB开发

jsp实现文件流下载导出excel

1、服务端数据查询处理jsp主要代码示例(excel处理使用的是jxl包):

Date now = new Date();
SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmssSSS");
String filename = sdf.format(now) + ".xls";
try{
	OutputStream os = response.getOutputStream();// 取得输出流
	response.reset();// 清空输出流
	response.setHeader("Content-disposition", "attachment; filename="+filename);// 设定输出文件头
	//response.setContentType("application/msexcel");// 定义输出类型
	response.setContentType("application/force-download");//设置为下载application/force-download

	WritableWorkbook wwb = Workbook.createWorkbook(os); // 建立excel文件
	WritableSheet ws = wwb.createSheet("员工列表", 0);   // 创建一个工作表

	//    设置单元格的文字格式
	/* WritableFont wf = new WritableFont(WritableFont.ARIAL,10,WritableFont.NO_BOLD,false, UnderlineStyle.NO_UNDERLINE,Colour.BLUE);
	WritableCellFormat wcf = new WritableCellFormat(wf);
	wcf.setVerticalAlignment(VerticalAlignment.CENTRE);
	wcf.setAlignment(Alignment.CENTRE);
	ws.setRowView(0, 500); */
	WritableCellFormat wcf = new WritableCellFormat();
	ws.addCell(new Label(0, 0, "姓名", wcf));//姓名
	ws.addCell(new Label(1, 0, "手机", wcf));//手机

	int length = 4;
	for(int i=0;i

2、客户端请求该jsp页面,弹出下载保存对话框。jquery ajax方式会返回数据而不会弹出下载保存对话框,可以使用form提交方式实现下载保存,如下:

var form = $("
"); form.attr('style','display:none'); form.attr('target',''); form.attr('method','post'); form.attr('action','export.jsp'); $('body').append(form); form.submit(); form.remove();

注:实际应用中,安装了迅雷的电脑,会有冲突,导致无法下载的情况!
原创内容转载请保留出处GEEK笔记(http://www.geekapp.cn/)。