ireport导出excelhtmlpdf等格式完整实例.docx

上传人:b****6 文档编号:7698230 上传时间:2023-01-25 格式:DOCX 页数:4 大小:17.08KB
下载 相关 举报
ireport导出excelhtmlpdf等格式完整实例.docx_第1页
第1页 / 共4页
ireport导出excelhtmlpdf等格式完整实例.docx_第2页
第2页 / 共4页
ireport导出excelhtmlpdf等格式完整实例.docx_第3页
第3页 / 共4页
ireport导出excelhtmlpdf等格式完整实例.docx_第4页
第4页 / 共4页
亲,该文档总共4页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

ireport导出excelhtmlpdf等格式完整实例.docx

《ireport导出excelhtmlpdf等格式完整实例.docx》由会员分享,可在线阅读,更多相关《ireport导出excelhtmlpdf等格式完整实例.docx(4页珍藏版)》请在冰豆网上搜索。

ireport导出excelhtmlpdf等格式完整实例.docx

ireport导出excelhtmlpdf等格式完整实例

ireport导出excel,html.pdf等格式完整实例

本例报表中的数据是List传入的值,不是通过报表执行查询的数据。

本例是基于struts使用的。

利用ireport工具导出excel

一、导入irport相关的jar包导入

common-digester-1[1].7.jar

commons-javaflow-200060411.jar

itext-1.3.jar

iTextAsian.jar

jasperreports-1.2.4.jar

jcommon-1.0.16.jar

jfreechart-1.0.13.jar

poi-2.0-final-20010126.jar

需要注意的是:

jar包的版本一定要注意,如果本版不同的话,很容易引起错误的。

二、在ireport中画出,需要显示的字段样式(网上有很多这样的例子,这里就不说怎么制作ireport文件了)如下是我制作的文件样式,编译生成.jasper我们需要的这个xx.jasper文件。

三、①当页面点击“导出”时,会执行action中的exportexcel()方法。

(需要注意的是如果页面用的是ajax请求action那么,不一定能够出现下载页面,但是我没有验证,因为以前我做过的是poi导出excel时用ajax请求action时不行,所以最好不要用ajax请求action)

[java]viewplaincopy/***导出数据*@param"excel"导出文件文件格式*@param"intentpro2.jasper"ireport编译生成的.jasper文件*@paramalllist需要导出的数据的list值*@paramfianceInfo当导出是默认的文件名称*@returnString*/publicStringexportexcel(){JasperHelper.exportmain("excel","intentpro2.jasper",alllist,"fianceInfo");returnSUCCESS;}

②JasperHelper类

[java]viewplaincopyimportjava.io.File;importjava.io.FileInputStream;importjava.io.FileNotFoundException;importjava.io.IOException;importjava.io.InputStream;importjava.lang.reflect.Field;importjava.util.Collection;importjava.util.HashMap;importjava.util.List;importjava.util.Map;importjavax.servlet.ServletOutputStream;importjavax.servlet.http.HttpServletRequest;importjavax.servlet.http.HttpServletResponse;importorg.apache.log4j.Logger;importorg.apache.struts2.ServletActionContext;importorg.jfree.util.Log;importcom.opensymphony.xwork2.ActionContext;importmon.dao.impl.BaseDaoImpl;importnet.sf.jasperreports.engine.JRDataSource;importnet.sf.jasperreports.engine.JRException;importnet.sf.jasperreports.engine.JRExporter;importnet.sf.jasperreports.engine.JRExporterParameter;importnet.sf.jasperreports.engine.JasperExportManager;importnet.sf.jasperreports.engine.JasperFillManager;importnet.sf.jasperreports.engine.JasperPrint;importnet.sf.jasperreports.engine.JasperReport;importnet.sf.jasperreports.engine.base.JRBaseReport;importnet.sf.jasperreports.engine.data.JRBeanCollectionDataSource;importnet.sf.jasperreports.engine.export.JRHtmlExporter;importnet.sf.jasperreports.engine.export.JRHtmlExporterParameter;importnet.sf.jasperreports.engine.export.JRRtfExporter;importnet.sf.jasperreports.engine.export.JRXlsExporter;importnet.sf.jasperreports.engine.export.JRXlsExporterParameter;importnet.sf.jasperreports.engine.util.JRLoader;publicclassJasperHelper{privatestaticLoggerlogger=Logger.getLogger(JasperHelper.class);publicstaticfinalStringPRINT_TYPE="print";publicstaticfinalStringPDF_TYPE="pdf";publicstaticfinalStringEXCEL_TYPE="excel";publicstaticfinalStringHTML_TYPE="html";publicstaticfinalStringWORD_TYPE="word";publicstaticvoidprepareReport(JasperReportjasperReport,Stringtype){logger.debug("Themethod=======prepareReport()start.......................");/**如果导出的是excel,则需要去掉周围的margin*/if("excel".equals(type))try{Fieldmargin=JRBaseReport.class.getDeclaredField("leftMargin");margin.setAccessible(true);margin.setInt(jasperReport,0);margin=JRBaseReport.class.getDeclaredField("topMargin");margin.setAccessible(true);margin.setInt(jasperReport,0);margin=JRBaseReport.class.getDeclaredField("bottomMargin");margin.setAccessible(true);margin.setInt(jasperReport,0);FieldpageHeight=JRBaseReport.class.getDeclaredField("pageHeight");pageHeight.setAccessible(true);pageHeight.setInt(jasperReport,2147483647);}catch(Exceptionexception){}}/***导出excel*/publicstaticvoidexportExcel(JasperPrintjasperPrint,StringdefaultFilename,HttpServletRequestrequest,HttpServletResponseresponse)throwsIOException,JRException{logger.debug("执行导出excelThemethod=======exportExcel()start.......................");/**设置头信息*/response.setContentType("application/vnd.ms-excel");Stringdefaultname=null;if(defaultFilename.trim()!

=null&&defaultFilename!

=null){defaultname=defaultFilename+".xls";}else{defaultname="export.xls";}StringfileName=newString(defaultname.getBytes("gbk"),"utf-8");response.setHeader("Content-disposition","attachment;filename="+fileName);ServletOutputStreamouputStream=response.getOutputStream();JRXlsExporterexporter=newJRXlsExporter();exporter.setParameter(JRExporterParameter.JASPER_PRINT,jasperPrint);exporter.setParameter(JRExporterParameter.OUTPUT_STREAM,ouputStream);exporter.setParameter(JRXlsExporterParameter.IS_REMOVE_EMPTY_SPACE_BETWEEN_ROWS,Boolean.TRUE);exporter.setParameter(JRXlsExporterParameter.IS_ONE_PAGE_PER_SHEET,Boolean.FALSE);exporter.setParameter(JRXlsExporterParameter.IS_WHITE_PAGE_BACKGROUND,Boolean.FALSE);exporter.exportReport();ouputStream.flush();ouputStream.close();}/***导出pdf,注意此处中文问题,*这里应该详细说:

主要在ireport里变下就行了。

看图*1)在ireport的classpath中加入iTextAsian.jar*2)在ireport画jrxml时,看ireport最左边有个属性栏。

*下边的设置就在点字段的属性后出现。

*pdffontname:

STSong-Light,pdfencoding:

UniGB-UCS2-H*/privatestaticvoidexportPdf(JasperPrintjasperPrint,StringdefaultFilename,HttpServletRequestrequest,HttpServletResponseresponse)throwsIOException,JRException{response.setContentType("application/pdf");Stringdefaultname=null;if(defaultFilename.trim()!

=null&&defaultFilename!

=null){defaultname=defaultFilename+".pdf";}else{defaultname="export.pdf";}StringfileName=newString(defaultname.getBytes("GBK"),"ISO8859_1");response.setHeader("Content-disposition","attachment;filename="+fileName);ServletOutputStreamouputStream=response.getOutputStream();JasperExportManager.exportReportToPdfStream(jasperPrint,ouputStream);ouputStream.flush();ouputStream.close();}/***导出html*/privatestaticvoidexportHtml(JasperPrintjasperPrint,StringdefaultFilename,HttpServletRequestrequest,HttpServletResponseresponse)throwsIOException,JRException{response.setContentType("text/html");ServletOutputStreamouputStream=response.getOutputStream();JRHtmlExporterexporter=newJRHtmlExporter();exporter.setParameter(JRHtmlExporterParameter.IS_USING_IMAGES_TO_ALIGN,Boolean.FALSE);exporter.setParameter(JRExporterParameter.JASPER_PRINT,jasperPrint);exporter.setParameter(JRExporterParameter.CHARACTER_ENCODING,"UTF-8");exporter.setParameter(JRExporterParameter.OUTPUT_STREAM,ouputStream);exporter.exportReport();ouputStream.flush();ouputStream.close();}/***导出word*/privatestaticvoidexportWord(JasperPrintjasperPrint,StringdefaultFilename,HttpServletRequestrequest,HttpServletResponseresponse)throwsJRException,IOException{response.setContentType("application/msword;charset=utf-8");Stringdefaultname=null;if(defaultFilename.trim()!

=null&&defaultFilename!

=null){defaultname=defaultFilename+".doc";}else{defaultname="export.doc";}StringfileName=newString(defaultname.getBytes("GBK"),"utf-8");response.setHeader("Content-disposition","attachment;filename="+fileName);JRExporterexporter=newJRRtfExporter();exporter.setParameter(JRExporterParameter.JASPER_PRINT,jasperPrint);exporter.setParameter(JRExporterParameter.OUTPUT_STREAM,response.getOutputStream());exporter.exportReport();}/***按照类型导出不同格式文件**@paramdatas*数据*@paramtype*文件类型*@paramis*jasper文件的来源*@paramrequest*@paramresponse*@paramdefaultFilename默认的导出文件的名称*/privatestaticvoidexport(Collectiondatas,Stringtype,StringdefaultFilename,InputStreamis,HttpServletRequestrequest,HttpServletResponseresponse){logger.debug("导出判断Themethod=======export()start.......................");try{JasperReportjasperReport=(JasperReport)JRLoader.loadObject(is);prepareReport(jasperReport,type);JRDataSourceds=newJRBeanCollectionDataSource(datas,false);Mapparameters=newHashMap();//parameters.put("wheresql","andstatus='3'");/*parameters.put("wheresql","");Stringdiver="oracle.jdbc.driver.OracleDriver";Stringurl="jdbc:

oracle:

thin:

@192.168.1.156:

1521:

orcl";Stringusername="qqwcrm0625";Stringpassword="qqwcrm";ReportDataSourcedatasource=newReportDataSource();datasource.setDiver(diver);datasource.setUrl(url);datasource.setUsername(username);datasource.setPassword(password);Connectioncon=getConnection(datasource);*/JasperPrintjasperPrint=JasperFillManager.fillReport(jasperReport,parameters,ds);if(EXCEL_TYPE.equals(type)){exportExcel(jasperPrint,defaultFilename,request,response);}elseif(PDF_TYPE.equals(type)){exportPdf(jasperPrint,defaultFilename,request,response);}elseif(HTML_TYPE.equals(type)){exportHtml(jasperPrint,defaultFilename,request,response);}elseif(WORD_TYPE.equals(type)){exportWord(jasperPrint,defaultFilename,request,response);}}catch(Exceptione){e.printStackTrace();}}/***导出入口**@paramexportType*导出文件的类型*@paramjaspername*jasper文件的名字如:

xx.jasper*@paramlists*导出的数据*@paramrequest*@paramresponse*@paramdefaultFilename默认的导出文件的名称*/publicstaticvoidexportmain(StringexportType,Stringjaspername,Listlists,StringdefaultFilename){logger.debug("进入导出Themethod=======exportmain()start.......................");ActionContextct=ActionContext.getContext();HttpServletRequestrequest=(HttpServletRequest)ct.get(ServletActionContext.HTTP_REQUEST);HttpServletResponseresponse=ServletActionContext.getResponse();Stringfilenurl=request.getRealPath<spanstyle="color:

#ff0000;">("/ireport/"+jaspername);//jasper文件放在WebRoot/ireport/xx.jasper</span>Filefile=newFile(filenurl);InputStreamis=null;try{is=newFileInputStream(file);}catch(FileNotFoundExceptione){e.printStackTrace();}export(lists,exportType,defaultFilename,is,request,response);}}

③struts配置文件中的配置,没有什么特别的

[html]viewplaincopy<actionname="exportexcel"class="intentProVoList"method="exportexcel"><resultname="success"></result></action>bsp;

四、特别注意:

在ireport中的fields中,各个字段的名称一定要与list中的各

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 表格模板 > 合同协议

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1