⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 excelservlet.java

📁 报表工具IReport的例子,实例中包括了生成pdf,html,excel等格式的报表文件.源码中包括了报表和在web上展现的源程序
💻 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 + -