微软,百度,谷歌竞相收购本人小博
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>
下面是导出为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>
相关文章推荐
- 微软、谷歌、百度等公司经典面试100题[第101-160题]
- 经典面试题(二)附答案 算法+数据结构+代码 微软Microsoft、谷歌Google、百度、腾讯
- 经典面试题(一)附答案 算法+数据结构+代码 微软Microsoft、谷歌Google、百度、腾讯
- 微软Microsoft、谷歌Google、百度、腾讯面试题
- 5个海盗分100颗宝石/金币的2个版本-Google, 谷歌,百度,baidu,阿里巴巴,alibaba,微软,华为,huawei面试题
- 127名选手1:1淘汰赛决出优胜者问题 - Google, 谷歌,百度,baidu,阿里巴巴,alibaba,微软,华为,huawei面试题
- 好比你有一个衣橱,里面塞满了各种衬衫,你会怎么整理这些衬衫,好让你以后找衬衫的时候容易些? - Google, 谷歌,百度,baidu,阿里巴巴,alibaba,微软,华为,huawei面试题,
- 全新整理:微软、谷歌、百度等公司经典面试100题[第1-60题]
- 微软转而收购AOL 雅虎倒向谷歌被FTC盯上
- 经典面试题(一)附答案 算法+数据结构+代码 微软Microsoft、谷歌Google、百度、腾讯
- 经典面试题(四)附答案 算法+数据结构+代码 微软Microsoft、谷歌Google、百度、腾讯
- 经典面试题(三)附答案 算法+数据结构+代码 微软Microsoft、谷歌Google、百度、腾讯
- 全新整理:微软、谷歌、百度等公司经典面试100题[第101-160题]
- 经典面试题(一)附答案 算法+数据结构+代码 微软Microsoft、谷歌Google、百度、腾讯
- 经典面试题(三)附答案 算法+数据结构+代码 微软Microsoft、谷歌Google、百度、腾讯
- 微软、谷歌、百度等公司经典面试100题[第1-60题]
- 经典面试题(四)附答案 算法+数据结构+代码 微软Microsoft、谷歌Google、百度、腾讯
- 为什么镜子里的影像左右颠倒而不是上下颠倒 - Google, 谷歌,百度,baidu,阿里巴巴,alibaba,微软,华为,huawei面试题
- 如何让一个网站免费被百度或者谷歌等搜索引擎收购
- 全新整理:微软、谷歌、百度等公司经典面试100题[第1-60题]