ireport 导出html,以HTML格式导出iReport图表

本文介绍了一个使用iReport制作JRXML文件并通过JavaStruts进行数据导出的例子。作者尝试根据不同格式(如PDF、RTF、HTML、XLS、CSV)导出报表,并遇到了HTML格式下图表无法正常显示的问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

我正在使用iReport来制作JRXML文件。要使用Java Struts导出这些数据,我使用下面的代码。以HTML格式导出iReport图表

public ActionForward reportExport(ActionMapping mapping, ActionForm form,

HttpServletRequest req, HttpServletResponse res) throws Exception {

String reportType2=req.getParameter("reporttype");

System.out.println("reportType2"+reportType2);

String filename = "slademofinalreport1.jrxml";

/*String reporttype = "pdf";*/

String reporttype = reportType2;

System.out.println(filename);

System.out.println(reporttype);

Class.forName("com.mysql.jdbc.Driver");

Connection con = (Connection) DriverManager.getConnection("jdbc:mysql://localhost:3306/epim","", "");

String query="select projectname,processname,queuename,sladuedate,d.createddate,d.lastupdatedate,count(d.documentid)as numofdocuments,datediff(d.createddate,d.lastupdatedate)/count(d.documentid) as averagesla,datediff(d.sladuedate,d.createddate) as sladefined from epim.mstqueue mq,epim.userproject u,epim.documentqueuedetails d,epim.mstproject mproj,epim.mstprocess mproc where d.projectid=u.projectid and u.userid=13 and mproj.projectid=d.projectid and mproc.processid=d.processid and mq.queueid=d.queueid group by queuename ";

PreparedStatement stmt1=con.prepareStatement(query);

//stmt1.setInt(1,200);

java.sql.ResultSet rs3=stmt1.executeQuery();

/*Statement stmt1=(Statement) con.createStatement();

java.sql.ResultSet rs3= stmt1.executeQuery("select projectname,processname,queuename,sladuedate,d.createddate,d.lastupdatedate,count(d.documentid)as numofdocuments,datediff(d.createddate,d.lastupdatedate)/count(d.documentid) as averagesla,datediff(d.sladuedate,d.createddate) as sladefined from epim.mstqueue mq,epim.userproject u,epim.documentqueuedetails d,epim.mstproject mproj,epim.mstprocess mproc where d.projectid=u.projectid and u.userid=13 and mproj.projectid=d.projectid and mproc.processid=d.processid and mq.queueid=d.queueid group by queuename");*/

JRResultSetDataSource obj=new JRResultSetDataSource(rs3);

// String path = application.getRealPath("/");

JasperReport jasperReport = JasperCompileManager.compileReport("D:/subash/kmsnewwork/KMS_SUBASH/WebContent/jasperreport/"+ filename);

System.out.println("Report Compiled...");

JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport,null,obj);

System.out.println("Report Created...");

ServletOutputStream ouputStream = res.getOutputStream();

JRExporter exporter = null;

if("pdf".equalsIgnoreCase(reporttype))

{

res.setContentType("application/pdf");

res.setHeader("Content-Disposition", "inline; filename=\"file.pdf\"");

exporter = new JRPdfExporter();

exporter.setParameter(JRExporterParameter.JASPER_PRINT, jasperPrint);

exporter.setParameter(JRExporterParameter.OUTPUT_STREAM, ouputStream);

}

else if("rtf".equalsIgnoreCase(reporttype))

{

res.setContentType("application/rtf");

res.setHeader("Content-Disposition", "inline; filename=\"file.rtf\"");

exporter = new JRRtfExporter();

exporter.setParameter(JRExporterParameter.JASPER_PRINT, jasperPrint);

exporter.setParameter(JRExporterParameter.OUTPUT_STREAM, ouputStream);

}

else if("html".equalsIgnoreCase(reporttype))

{

exporter = new JRHtmlExporter();

exporter.setParameter(JRHtmlExporterParameter.OUTPUT_STREAM,false);

exporter.setParameter(JRHtmlExporterParameter.IS_USING_IMAGES_TO_ALIGN, new Boolean(false));

exporter.setParameter(JRExporterParameter.JASPER_PRINT, jasperPrint);

exporter.setParameter(JRExporterParameter.OUTPUT_STREAM, ouputStream);

}

else if("xls".equalsIgnoreCase(reporttype))

{

res.setContentType("application/xls");

res.setHeader("Content-Disposition", "attachment; filename=\"file.xls\"");

exporter = new JRXlsExporter();

exporter.setParameter(JRExporterParameter.JASPER_PRINT, jasperPrint);

exporter.setParameter(JRExporterParameter.OUTPUT_STREAM, ouputStream);

}

else if("csv".equalsIgnoreCase(reporttype))

{

res.setContentType("application/csv");

res.setHeader("Content-Disposition", "inline; filename=\"file.csv\"");

exporter = new JRCsvExporter();

exporter.setParameter(JRExporterParameter.JASPER_PRINT, jasperPrint);

exporter.setParameter(JRExporterParameter.OUTPUT_STREAM, ouputStream);

}

try

{

exporter.exportReport();

}

catch (JRException e)

{

throw new ServletException(e);

}

finally

{

if (ouputStream != null)

{

try

{

ouputStream.close();

}

catch (IOException ex)

{

System.out.println("exception thrown");

}

}

}

/*return mapping.findForward("goLoginPage");*/

return mapping.findForward("goReportFilterPage");

}

所有导出格式都获取除HTML外的图表。谁能帮我?我应该为HTML做些额外的事情,因为图表没有使用HTML格式显示?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值