package com.sidatech.actions;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.InputStream;
import java.io.OutputStream;
import java.io.PrintWriter;
import java.sql.Connection;
import java.sql.DriverManager;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import net.sf.jasperreports.charts.JRDataRange;
import net.sf.jasperreports.engine.JRException;
import net.sf.jasperreports.engine.JRExporter;
import net.sf.jasperreports.engine.JRExporterParameter;
import net.sf.jasperreports.engine.JasperCompileManager;
import net.sf.jasperreports.engine.JasperFillManager;
import net.sf.jasperreports.engine.JasperPrint;
import net.sf.jasperreports.engine.JasperReport;
import net.sf.jasperreports.engine.data.JRBeanCollectionDataSource;
import net.sf.jasperreports.engine.export.JExcelApiExporter;
import net.sf.jasperreports.engine.export.JRHtmlExporter;
import net.sf.jasperreports.engine.export.JRHtmlExporterParameter;
import net.sf.jasperreports.engine.export.JRPdfExporter;
import net.sf.jasperreports.engine.export.JRRtfExporter;
import net.sf.jasperreports.engine.export.JRXlsExporter;
import net.sf.jasperreports.engine.export.JRXlsExporterParameter;
import net.sf.jasperreports.engine.util.JRLoader;
import net.sf.jasperreports.j2ee.servlets.ImageServlet;
import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartUtilities;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.plot.PlotOrientation;
import org.jfree.data.category.DefaultCategoryDataset;
import com.sidatech.forms.MyJavaBean;
//功能:测试报表生成pdf,html,excel三种文件的形式
public class JasperReportAction extends Action
{
public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception
{
String dispatch = request.getParameter("dispatch");
if (dispatch.equals("pdf"))
{
pdfAction(request, response);
}
else if (dispatch.equals("html"))
{
htmlAction(request, response);
}
else if (dispatch.equals("excel"))
{
excelAction(request, response);
}
else if (dispatch.equals("jfreechart"))
{
jfreechartAction(request, response);
}
else if (dispatch.equals("word")){
wordAction(request, response);
}
else
{
System.out.println("Do nothing!");
}
return mapping.findForward("");
}
// 生成Pdf文件形式的报表
private void pdfAction(HttpServletRequest request, HttpServletResponse response) throws Exception
{
File jasperfile = new File(request.getSession().getServletContext().getRealPath("/jaspers/JFreeChartReport.jasper"));
JasperReport jasperReport = (JasperReport) JRLoader.loadObject(jasperfile);
File destFile = new File(jasperfile.getParent() + "\\demo1.pdf");// 生成pdf文件的路径
JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport, new HashMap(), getConnection());// 据据jasper文件生成JasperPrint对象
exportPdf(jasperPrint, destFile);
response.sendRedirect("jaspers/demo1.pdf");
}
// 生成Html文件形式的报表
private void htmlAction(HttpServletRequest request, HttpServletResponse response) throws Exception
{
PrintWriter printWriter = response.getWriter();
File jasperfile = new File(request.getSession().getServletContext().getRealPath("/jaspers/JFreeChartReport.jasper"));
JasperReport jasperReport = (JasperReport) JRLoader.loadObject(jasperfile);
File destFile = new File(jasperfile.getParent() + "\\demo1.html");
JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport, new HashMap(), getConnection());
request.getSession().setAttribute(
ImageServlet.DEFAULT_JASPER_PRINT_SESSION_ATTRIBUTE,
jasperPrint);
exportHtml(jasperPrint, destFile,printWriter);
response.sendRedirect("jaspers/demo1.html");
}
private void wordAction(HttpServletRequest request, HttpServletResponse response) throws Exception
{
File jasperfile=new File(request.getSession().getServletContext().getRealPath("/jaspers/JFreeChartReport.jasper"));
JasperReport jasperReport =(JasperReport) JRLoader.loadObject(jasperfile);
File destFile=new File(jasperfile.getParent()+"\\demo1.doc");
response.setContentType("application/msword;charset=utf-8");
JasperPrint jasperPrint=JasperFillManager.fillReport(jasperReport, new HashMap(), getConnection());
JRExporter exporter=new JRRtfExporter();
exporter.setParameter(JRExporterParameter.JASPER_PRINT, jasperPrint); // 定义JasperPrint对象
exporter.setParameter(JRExporterParameter.OUTPUT_FILE, destFile); // 定义保存Pdf文件的路径
exporter.setParameter(JRExporterParameter.OUTPUT_STREAM, response.getOutputStream());
try
{
exporter.exportReport();
}
catch (JRException e)
{
e.printStackTrace();
}
getConnection().close();
//response.sendRedirect("jaspers/demo1.doc");
return;
}
// 生成Excel文件形式的报表
private void excelAction(HttpServletRequest request, HttpServletResponse response) throws Exception
{
File jasperfile = new File(request.getSession().getServletContext().getRealPath("/jaspers/JFreeChartReport.jasper"));
JasperReport jasperReport = (JasperReport) JRLoader.loadObject(jasperfile);
File destFile = new File(jasperfile.getParent() + "\\demo1.xls");
JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport, new HashMap(), getConnection());
exportExcel(jasperPrint, destFile);
response.sendRedirect("jaspers/demo1.xls");
}
// 生成jfreechart文件形式的报表
private void jfreechartAction(HttpServletRequest request, HttpServletResponse response) throws Exception
{
OutputStream out = response.getOutputStream();
try {
DefaultCategoryDataset dataset = new DefaultCategoryDataset();
dataset.addValue(10.0, "S1", "C1");
dataset.addValue(4.0, "S1", "C2");
dataset.addValue(15.0, "S1", "C3");
dataset.addValue(14.0, "S1", "C4");
dataset.addValue(-5.0, "S2", "C1");
dataset.addValue(-7.0, "S2", "C2");
dataset.addValue(14.0, "S2", "C3");
dataset.addValue(-3.0, "S2", "C4");
dataset.addValue(6.0, "S3", "C1");
dataset.addValue(17.0, "S3", "C2");
dataset.addValue(-12.0, "S3", "C3");
dataset.addValue(7.0, "S3", "C4");
dataset.addValue(7.0, "S4", "C1");
dataset.addValue(15.0, "S4", "C2");
dataset.addValue(11.0, "S4", "C3");
dataset.addValue(0.0, "S4", "C4");
dataset.addValue(-8.0, "S5", "C1");
dataset.addValue(-6.0, "S5", "C2");
dataset.addValue(10.0, "S5", "C3");
dataset.addValue(-9.0, "S5", "C4");
dataset.addValue(9.0, "S6", "C1");
dataset.addValue(8.0, "S6", "C2");
dataset.addValue(null, "S6", "C3");
dataset.addValue(6.0, "S6", "C4");
dataset.addValue(-10.0, "S7", "C1");
dataset.addValue(9.0, "S7", "C2");
dataset.addValue(7.0, "S7", "C3");
dataset.addValue(7.0, "S7", "C4");
dataset.addValue(11.0, "S8", "C1");
dataset.addValue(13.0, "S8", "C2");
dataset.addValue(9.0, "S8", "C3");
dataset.addValue(9.0, "S8", "C4");
dataset.addValue(-3.0, "S9", "C1");
dataset.addValue(7.0, "S9", "C2");
dataset.addValue(11.0, "S9", "C3");
dataset.addValue(-10.0, "S9", "C4");
JFreeChart chart = ChartFactory.createBarChart("Bar Chart",
"Category", "Value", dataset, PlotOrientation.VERTICAL,
true, true, false);
response.setContentType("image/png");
ChartUtilities.writeChartAsPNG(out, chart, 400, 300);
} catch (Exception e) {
System.err.println(e.toString());
} finally {
out.close();
}
}
// 生成Excel文件类型的报表
private void exportExcel(JasperPrint jasperPrint, File outfi
没有合适的资源?快使用搜索试试~ 我知道了~
jasper+ireport+jfreechart导出html.excel.word.pdf
共51个文件
jar:13个
class:8个
java:8个
4星 · 超过85%的资源 需积分: 27 148 下载量 41 浏览量
2011-09-09
16:02:33
上传
评论 4
收藏 17.07MB RAR 举报
温馨提示
jasper+ireport+jfreechart导出html.excel.word.pdf,两种数据方式:数据库,list.图片路径完美解决,附带所有jar包,部署可用
资源推荐
资源详情
资源评论
收起资源包目录
MyIReportTest.rar (51个子文件)
MyIReportTest
.mystrutsdata 262B
.settings
org.eclipse.wst.jsdt.ui.superType.name 6B
org.eclipse.wst.jsdt.ui.superType.container 49B
.jsdtscope 500B
org.eclipse.jdt.core.prefs 330B
src
com
sidatech
forms
MyJavaBean.java 391B
JasperReportForm.java 359B
ListJasperReportForm.java 363B
actions
MyDateSource.java 467B
JasperReportAction.java 11KB
ListJasperReportAction.java 6KB
utils
JFreeChartScriptlet.java 1KB
JChartReportMain.java 2KB
.project 1KB
WebRoot
index1.jsp 741B
META-INF
MANIFEST.MF 36B
WEB-INF
web.xml 2KB
.struts-config.mex 1KB
classes
com
sidatech
forms
ListJasperReportForm.class 688B
JasperReportForm.class 676B
MyJavaBean.class 803B
actions
ListJasperReportAction.class 6KB
MyDateSource.class 691B
JasperReportAction.class 10KB
utils
JChartReportMain.class 2KB
JFreeChartScriptlet.class 2KB
struts-config.xml 951B
lib
commons-collections-3.1.jar 546KB
iTextAsian.jar 320KB
jcommon-1.0.16.jar 302KB
ojdbc14.jar 1.47MB
poi-3.7-20101029.jar 1.6MB
gnujaxp.jar 226KB
iTextAsianCmaps.jar 1.6MB
jasperreports-4.1.1.jar 3.12MB
ant-1.7.1.jar 1.26MB
iText-2.1.7.jar 1.08MB
jfreechart-1.0.13.jar 1.36MB
jxl.jar 709KB
groovy-all-1.7.5.jar 5.23MB
index.jsp 737B
jfreechart.html 9KB
jfreechart.jsp 879B
demo1.html_files
jaspers
ListIReport.jasper 29KB
JFreeChart.jrxml 3KB
ListIReport.jrxml 2KB
jreechart.jrxml 1KB
JFreeChartReport.jasper 23KB
JFreeChartReport.jrxml 3KB
.mymetadata 312B
.classpath 1KB
.myeclipse
共 51 条
- 1
zhao19861029
- 粉丝: 54
- 资源: 20
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
- 1
- 2
- 3
- 4
- 5
- 6
前往页