?? excelservlet.java
字號:
/**
*
*/
package com.hhkj.jasper;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.HashMap;
import java.util.Map;
import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import net.sf.jasperreports.engine.JRException;
import net.sf.jasperreports.engine.JRExporterParameter;
import net.sf.jasperreports.engine.JasperFillManager;
import net.sf.jasperreports.engine.JasperPrint;
import net.sf.jasperreports.engine.JasperReport;
import net.sf.jasperreports.engine.export.JRXlsExporter;
import net.sf.jasperreports.engine.export.JRXlsExporterParameter;
import net.sf.jasperreports.engine.util.JRLoader;
import com.hhkj.basecommon.BaseBean;
/**
* @author wzj
*
*/
public class ExcelServlet extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws IOException, ServletException {
ServletContext context = this.getServletConfig().getServletContext();
BaseBean baseBean = new BaseBean();
String Title = request.getParameter("Title");
String BEGINDATE = request.getParameter("BEGINDATE");
String ENDDATE = request.getParameter("ENDDATE");
try {
String SubFileReport = request.getParameter("SubFileReport");
String subPath = "/jasper/reports/" + SubFileReport + ".jasper";
File subReportFile = new File(context.getRealPath(subPath));
JasperReport subreport = (JasperReport) JRLoader
.loadObject(subReportFile.getPath());
// 引入xml編譯后生成的.jasper文件
String jasperFile = request.getParameter("jasperFile");
String path = "/jasper/reports/" + jasperFile + ".jasper";
File reportFile = new File(context.getRealPath(path));
JasperReport jasperReport = (JasperReport) JRLoader
.loadObject(reportFile.getPath());
//
Map parameters = new HashMap();
parameters.put("SubFileReport", subreport);
// 設置報表中引入的參數,該參數和報表中設置的參數一致
if (!Title.equals("")) {
// 漢字轉碼
String title1 = new String(Title.getBytes("ISO8859-1"), "GBK");
parameters.put("Title", title1.toUpperCase());
}
if (!BEGINDATE.equals("")) {
parameters.put("BEGINDATE", BEGINDATE.toUpperCase());
}
if (!ENDDATE.equals("ENDDATE")) {
parameters.put("ENDDATE", ENDDATE.toUpperCase());
}
JasperPrint jasperPrint = JasperFillManager.fillReport(
jasperReport, // 引入報表
parameters, // 引入參數
baseBean.getConnection()// 連接數據庫
);
JRXlsExporter exporter = new JRXlsExporter();
exporter
.setParameter(JRExporterParameter.JASPER_PRINT, jasperPrint);
ByteArrayOutputStream baos = new ByteArrayOutputStream();
exporter.setParameter(JRExporterParameter.OUTPUT_STREAM, baos);
exporter.setParameter(JRXlsExporterParameter.IS_ONE_PAGE_PER_SHEET,
Boolean.FALSE);
// exporter.setParameter(
// JRXlsExporterParameter.IS_WHITE_PAGE_BACKGROUND,
// Boolean.FALSE);
try {
exporter.exportReport();
} catch (JRException e) {
throw new ServletException(e);
}
byte[] bytes = baos.toByteArray();
if (bytes != null && bytes.length > 0) {
response.setContentType("application/xls");
response.setHeader("Content-Disposition",
"inline; filename=\"file.xls\"");
response.setContentLength(bytes.length);
ServletOutputStream ouputStream = response.getOutputStream();
try {
ouputStream.write(bytes, 0, bytes.length);
ouputStream.flush();
} finally {
if (ouputStream != null) {
try {
ouputStream.close();
} catch (IOException ex) {
}
}
}
}
}
// catch (JRException e)
catch (Exception e) {
PrintWriter out = response.getWriter();
out.println("<html>");
out.println("<head>");
out
.println("<title>JasperReports - Web Application Sample</title>");
out
.println("<link rel=\"stylesheet\" type=\"text/css\" href=\"../stylesheet.css\" title=\"Style\">");
out.println("</head>");
out.println("<body bgcolor=\"white\">");
out
.println("<span class=\"bnew\">JasperReports encountered this error :</span>");
out.println("<pre>");
e.printStackTrace(out);
out.println("</pre>");
out.println("</body>");
out.println("</html>");
} finally {
baseBean.cleanCon();
}
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doGet(request, response);
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -