first commit
This commit is contained in:
63
hrmsEjb/wenrgise/report/excel/ExcelReportServlet.java
Normal file
63
hrmsEjb/wenrgise/report/excel/ExcelReportServlet.java
Normal file
@@ -0,0 +1,63 @@
|
||||
package wenrgise.report.excel;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.io.OutputStream;
|
||||
import java.util.ArrayList;
|
||||
import java.util.zip.GZIPOutputStream;
|
||||
import javax.servlet.ServletConfig;
|
||||
import javax.servlet.ServletException;
|
||||
import javax.servlet.ServletOutputStream;
|
||||
import javax.servlet.http.HttpServlet;
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import jxl.Workbook;
|
||||
import jxl.WorkbookSettings;
|
||||
import jxl.write.WritableSheet;
|
||||
import jxl.write.WritableWorkbook;
|
||||
|
||||
public class ExcelReportServlet extends HttpServlet {
|
||||
private static final String CONTENT_TYPE_EXCEL = "application/vnd.ms-excel";
|
||||
|
||||
private static final String CONTENT_TYPE_ZIP = "application/zip";
|
||||
|
||||
public void init(ServletConfig config) throws ServletException {
|
||||
super.init(config);
|
||||
}
|
||||
|
||||
public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException {
|
||||
processRequest(request, response);
|
||||
}
|
||||
|
||||
public void doPost(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException {
|
||||
processRequest(request, response);
|
||||
}
|
||||
|
||||
private boolean isGzipSupported(HttpServletRequest request) {
|
||||
String encodings = request.getHeader("Accept-Encoding");
|
||||
return (encodings != null && encodings.indexOf("gzip") != -1);
|
||||
}
|
||||
|
||||
protected void processRequest(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException {
|
||||
response.setContentType("application/zip");
|
||||
String reportName = request.getParameter("reportname");
|
||||
String inputParam1 = request.getParameter("inputparam1");
|
||||
String inputParam2 = request.getParameter("inputparam2");
|
||||
ServletOutputStream servletOutputStream = response.getOutputStream();
|
||||
GZIPOutputStream gZIPOutputStream = new GZIPOutputStream((OutputStream)servletOutputStream);
|
||||
ExcelReport excelReport = new ExcelReport();
|
||||
WorkbookSettings ws = excelReport.getWorkBookSetting();
|
||||
try {
|
||||
WritableWorkbook workbook = Workbook.createWorkbook(gZIPOutputStream, ws);
|
||||
WritableSheet s = workbook.createSheet(reportName, 0);
|
||||
ExcelReportInformation ex = new ExcelReportInformation(reportName);
|
||||
String query = ex.getReportQuery(inputParam1, inputParam2);
|
||||
ArrayList aHeader = ex.getReportHeader();
|
||||
excelReport.writeDataSheet(s, aHeader, query);
|
||||
workbook.write();
|
||||
workbook.close();
|
||||
gZIPOutputStream.flush();
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user