使用jasperreports製作報表(導出pdf excel html)

最近項目需要製作報表類操作,所以在網上查了查資料找了找朋友幫我整了整,現在已經能跟順利跑起來了,所以將這些東東寫成文檔,以備忘記。

首先需要下載 ireport ,這個是進行報表設計的,如果不會使用,可以上網查查具體用法,等會我會貼上我自己做的一個簡單的小例子。

需要下載的資源:

ireport http://jasperforge.org/plugins/project/project_home.php?group_id=83

JasperReport  http://jasperforge.org/plugins/project/project_home.php?group_id=102

如果需要支持中文還需要以下兩個包:

iTextAsian http://nchc.dl.sourceforge.net/sourceforge/itext/iTextAsian.jar

iText  http://nchc.dl.sourceforge.net/sourceforge/itext/iText-2.1.5.jar 

另外在發佈工程的時候可能會提示缺少以下幾個包:

commons-beanutils http://labs.xiaonei.com/apache-mirror/commons/beanutils/binaries/commons-beanutils-1.8.0-bin.zip

commons-digester http://apache.mirror.phpchina.com/commons/digester/binaries/commons-digester-2.0-bin.zip

commons-collections http://apache.freelamp.com/commons/collections/binaries/commons-collections-3.2.1-bin.zip

poi http://apache.mirror.phpchina.com/poi/release/bin/

commons-ogging http://commons.apache.org/downloads/download_logging.cgi

上述提到的包均需要拷貝到工程當中。

 

這樣子基本上我們需要的包就算完整了,然後就是我們jsp頁面了,我的所有導出數據都是通過這個jsp頁面來實現的。

<!-- %@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%-->
<%@page import="org.springframework.web.context.WebApplicationContext"%>
<%@page import="org.springframework.web.context.support.WebApplicationContextUtils"%>
<%@page import="java.sql.Connection"%>
<%@page import="java.util.Map"%>
<%@page import="java.io.File"%>
<%@page import="java.util.HashMap"%>
<%@page import="net.sf.jasperreports.engine.JasperCompileManager"%>
<%@page import="net.sf.jasperreports.engine.JasperRunManager"%>
<%@page import="net.sf.jasperreports.engine.JasperPrint"%>
<%@page import="net.sf.jasperreports.engine.JasperFillManager"%>
<%@page import="java.text.SimpleDateFormat"%>
<%@page import="com.wfy.system.dao.BasicToolsDAO"%>
<%@page import="java.util.Enumeration"%>
<%@page import="net.sf.jasperreports.engine.export.JRXlsExporter"%>
<%@page import="net.sf.jasperreports.engine.JRExporterParameter"%>
<%@page import="net.sf.jasperreports.engine.export.JRXlsExporterParameter"%>
<%@page import="java.io.ByteArrayOutputStream"%>
<%@page import="net.sf.jasperreports.engine.export.JRHtmlExporterParameter"%>
<%@page import="net.sf.jasperreports.engine.export.JRHtmlExporter"%>
<%
    WebApplicationContext wac = WebApplicationContextUtils.getWebApplicationContext(this.getServletContext());
    BasicToolsDAO bo = (BasicToolsDAO) wac.getBean("BasicToolsDAO");//連接服務器,從數據看中獲取數據庫的connection。

    String rptpath = application.getRealPath("/reports/jasper");//我們將要使用的報表模板保存路徑
    
    String reportname = request.getParameter("reportName");//獲取報表名稱
    Enumeration parameters = request.getParameterNames();//解析報表顯示需要的參數
    JasperCompileManager.compileReportToFile(rptpath + "/" + reportname +".jrxml");//編譯報表模板源碼

    try {
        Connection con = bo.getDataSourceConnection();//創建數據源
        File rpt = new File(rptpath + "/" + reportname + ".jasper");//獲取報表模板

       
        Map map = new HashMap();
        while(parameters.hasMoreElements()){
            String parameter = parameters.nextElement().toString();
            if(!parameter.equals("reportName") && !parameter.equals("reportType")){
                String[] p = parameter.split("_");
                if ("int".equals(p[1])) {
                    map.put(p[0], Integer.parseInt(request.getParameter(parameter)));
                } else if ("string".equals(p[1])) {
                    String str = request.getParameter(parameter);
                    if(str==null){
                        str = "";
                    }
                    map.put(p[0], str);
                } else if ("float".equals(p[1])) {
                    map.put(p[0], Float.parseFloat(request.getParameter(parameter)));
                } else if ("double".equals(p[1])) {
             
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章