您的位置:首页 > 其它

微软,百度,谷歌竞相收购本人小博

2009-04-01 22:12 393 查看
JasperReport还可以导出为其它格式,如PDF,XLS,RTF,HTML,CSV
下面是导出为PDF和XLS文件Java代码

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

Connection connection = DriverManager.getConnection("jdbc:mysql://localhost/jasperreportdb","root","root");

try {

//据据jasper文件生成JasperPrint对象

JasperPrint jasperPrint = JasperFillManager.fillReport("WebRoot//JasperFile//report9.jasper", new HashMap(),connection);

//生成我们的导出类JRPdfExporter 来自JRExporter

JRPdfExporter jrpdfExporter = new JRPdfExporter();

//设JasperPrint参数

jrpdfExporter.setParameter(JRExporterParameter.JASPER_PRINT,jasperPrint);

//设置输入的PDF文件放在什么地方

jrpdfExporter.setParameter(JRExporterParameter.OUTPUT_FILE_NAME, "WebRoot//JasperFile//exporter.pdf");

//输出

jrpdfExporter.exportReport();

//Excel JExcelApiExporter 来自JRExporter

JExcelApiExporter xlsExporter = new JExcelApiExporter();

xlsExporter.setParameter(JRExporterParameter.JASPER_PRINT, jasperPrint);

xlsExporter.setParameter(JRExporterParameter.OUTPUT_FILE_NAME,"WebRoot//JasperFile//exporter.xls");

xlsExporter.exportReport();

} catch (JRException e) {

e.printStackTrace();

}

在WEB上面生成HTML的报表
Java代码

publicclass HtmlReportServlet extends HttpServlet {

privatestaticfinallong serialVersionUID = 1L;

publicvoid doGet(HttpServletRequest request, HttpServletResponse response)

throws ServletException, IOException {

try {

//连结数据库

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

Connection connection = DriverManager.getConnection("jdbc:mysql://localhost/jasperreportdb","root","root");

//获得Jasper输入流

InputStream inputStream = getServletConfig().getServletContext().getResourceAsStream("JasperFile//report9.jasper");

//获得JasperPrint对象

JasperPrint jasperPrint = JasperFillManager.fillReport(inputStream, new HashMap(),connection);

connection.close();

//设置格式

response.setContentType("text/html");

//获得输出流 ,这里不能这样response.getOutputStream()

PrintWriter printWriter = response.getWriter();

//创建JRHtmlExporter对象

JRHtmlExporter htmlExporter = new JRHtmlExporter();

//把jasperPrint到Session里面(net.sf.jasperreports.j2ee.jasper_print)

request.getSession().setAttribute(ImageServlet.DEFAULT_JASPER_PRINT_SESSION_ATTRIBUTE, jasperPrint);

//设值jasperPrint

htmlExporter.setParameter(JRExporterParameter.JASPER_PRINT,jasperPrint);

//设置输出

htmlExporter.setParameter(JRExporterParameter.OUTPUT_WRITER,printWriter);

//设置图片生成的Servlet(生成图片就用这个ImageServlet,并且要在XML文件里面配置 image?image=这个是Servlet的url-pattern)

htmlExporter.setParameter(JRHtmlExporterParameter.IMAGES_URI,"image?image=");

//导出

htmlExporter.exportReport();

printWriter.close();

} catch (SQLException e) {

e.printStackTrace();

} catch (ClassNotFoundException e) {

e.printStackTrace();

} catch (JRException e) {

e.printStackTrace();

}

}

publicvoid doPost(HttpServletRequest request, HttpServletResponse response)

throws ServletException, IOException {

this.doGet(request, response);

}

}

注意:这个因为用到了JasperReport里面的一个Servlet要在web.xml文件里配置好Xml代码

<servlet>

<servlet-name>HtmlReportServlet</servlet-name>

<servlet-class>com.langhua.JasperReport.Servlet.HtmlReportServlet</servlet-class>

</servlet>

<servlet>

<servlet-name>ImageServlet</servlet-name>

<servlet-class>net.sf.jasperreports.j2ee.servlets.ImageServlet</servlet-class>

</servlet>

<!--url-pattern视你的情况而定,如果图片出不来,你就看他的连结是什么 -->

<servlet-mapping>

<servlet-name>ImageServlet</servlet-name>

<url-pattern>/servlet/image</url-pattern>

</servlet-mapping>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐