// 导出excel方法
@RequestMapping("exportExcel")
public void exportExcel(HttpServletRequest request, HttpServletResponse response)
{
HttpSession session = request.getSession();
session.setAttribute("state", null);
// 生成提示信息,
response.setContentType("application/vnd.ms-excel");
String codedFileName = null;
OutputStream fOut = null;
try
{
// 进行转码,使其支持中文文件名
codedFileName = java.net.URLEncoder.encode("中文", "UTF-8");
response.setHeader("content-disposition", "attachment;filename=" + codedFileName + ".xls");
// response.addHeader("Content-Disposition", "attachment; filename=" + codedFileName + ".xls");
// 产生工作簿对象
HSSFWorkbook workbook = new HSSFWorkbook();
//产生工作表对象
HSSFSheet sheet = workbook.createSheet();
for (int i = 0; i <= 30000; i++)
{
HSSFRow row = sheet.createRow((int)i);//创建一行
HSSFCell cell = row.createCell((int)0);//创建一列
cell.setCellType(HSSFCell.CELL_TYPE_STRING);
cell.setCellValue("测试成功" + i);
}
fOut = response.getOutputStream();
workbook.write(fOut);
}
catch (UnsupportedEncodingException e1)
{}
catch (Exception e)
{}
finally
{
try
{
fOut.flush();
fOut.close();
}
catch (IOException e)
{}
session.setAttribute("state", "open");
}
System.out.println("文件生成...");
}
@RequestMapping("check")
public void check(HttpServletRequest request, HttpServletResponse response)
{
try
{
if ("open".equals(request.getSession().getAttribute("state")))
{
request.getSession().setAttribute("state", null);
response.getWriter().write("true");
response.getWriter().flush();
}
else
{
response.getWriter().write("false");
response.getWriter().flush();
}
}
catch (IOException e)
{}
}
/***********导出start************/ var excel_flag = 0; var win_check; var exportExcelBtn = new Ext.Button({ renderTo:'exportExcelBtn', text:"<span class='marL10'>"+'导出'+"</span>", height:24, iconCls:'findnew', width:110, bodyStyle:'padding:5px', handler: function() { excel_flag = 0; //禁用按钮 exportExcelBtn.disable(); location.href = "exportExcel"; //每隔一秒向后台发送请求 win_check = window.setInterval(check, 1000); } }); /** * 用于防止重复提交 */ function check() { excel_flag ++; if(excel_flag > 30) { //清空定时器 window.clearInterval(win_check); //启用按钮 exportExcelBtn.enable(); } Ext.Ajax.request( { url : 'check', success : function (response, result) { if(response.responseText=="true") { //清空定时器 window.clearInterval(win_check); //启用按钮 exportExcelBtn.enable(); } } }) } /***********导出end*****************/