%@ page contentType="text/html; charset=UTF-8"%>
<%@page import="net.sf.jasperreports.engine.export.JRXlsAbstractExporterParameter"%>
<%@page import="net.sf.jasperreports.engine.export.JRXlsExporterParameter"%>
<%@page import="java.net.URLEncoder"%>
<%@page import="net.sf.jasperreports.engine.JRException"%>
<%@page import="net.sf.jasperreports.j2ee.servlets.ImageServlet"%>
<%@page import="java.io.IOException"%>
<%@page import="java.io.OutputStream"%>
<%@page import="net.sf.jasperreports.engine.JRExporterParameter"%>
<%@page import="net.sf.jasperreports.engine.export.JExcelApiExporter"%>
<%@page import="net.sf.jasperreports.engine.export.ooxml.JRXlsxExporter"%>
<%@page import="net.sf.jasperreports.engine.JasperPrint"%>
<%
Object obj = session.getAttribute(ImageServlet.DEFAULT_JASPER_PRINT_SESSION_ATTRIBUTE);
JasperPrint jasperPrint = null;
if(obj instanceof JasperPrint){
jasperPrint = (JasperPrint)obj;
}
OutputStream outputStream = null;
try {
//out.clear(); //清空缓存的内容
//out = pageContext.pushBody();
outputStream = response.getOutputStream();
response.setContentType("application/x-download");
response.setCharacterEncoding("UTF-8");
String appointFileName = (String)session.getAttribute("appointFileName");
if(appointFileName == null){
appointFileName = "";
}
if(appointFileName == ""){
response.setHeader("Content-Disposition", "attachment;filename="+URLEncoder.encode(session.getAttribute("fileName") + appointFileName +".xlsx", "UTF-8"));
}else{
response.setHeader("Content-Disposition", "attachment;filename="+URLEncoder.encode(appointFileName +".xlsx", "UTF-8"));
}
}catch (IOException e) {
//e.printStackTrace();
}catch(IllegalStateException e){
}
JRXlsxExporter xlsExporter = new JRXlsxExporter();
xlsExporter.setParameter(JRExporterParameter.JASPER_PRINT, jasperPrint);
xlsExporter.setParameter(JRExporterParameter.OUTPUT_STREAM,outputStream);
xlsExporter.setParameter(JRXlsExporterParameter.IS_REMOVE_EMPTY_SPACE_BETWEEN_ROWS,Boolean.TRUE);
xlsExporter.setParameter(JRXlsExporterParameter.IGNORE_PAGE_MARGINS,Boolean.TRUE);
xlsExporter.setParameter(JRXlsAbstractExporterParameter.IS_DETECT_CELL_TYPE, Boolean.TRUE);
//xlsExporter.setParameter(JRXlsExporterParameter.IS_DETECT_CELL_TYPE, Boolean.TRUE);//设置导出的Excel 数字显示成字符串问题
//xlsExporter.setParameter(JRXlsExporterParameter.IS_ONE_PAGE_PER_SHEET,Boolean.FALSE);
//xlsExporter.setParameter(JRXlsExporterParameter.IS_WHITE_PAGE_BACKGROUND,Boolean.FALSE);
try {
xlsExporter.exportReport();
outputStream.close();
out.clear();
out = pageContext.pushBody();
} catch (JRException e) {
e.printStackTrace();
}
%>