项目截图如下:

该项目是:Maven项目

pom.xml

4.0.0

JasperReports

JasperReports

war

0.0.1-SNAPSHOT

JasperReports Maven Webapp

http://maven.apache.org

junit

junit

3.8.1

test

net.sf.jasperreports

jasperreports

5.6.0

org.codehaus.groovy

groovy-all

2.2.2

mysql

mysql-connector-java

5.1.30

javax.servlet

servlet-api

2.5

org.apache.poi

poi

3.14

org.apache.poi

poi-ooxml

3.14

org.apache.poi

poi-ooxml-schemas

3.14

com.itextpdf

itext-asian

5.1.0

net.sourceforge.javydreamercsw

JasperReport

0.1

com.jaspersoft

ireport

1.0.0

com.itextpdf

itextpdf

5.1.0

JasperReports

DbReport.jrxml 如下:

Jdbc.java 如下:

package com.accord.dao;

import java.sql.Connection;

import java.sql.DriverManager;

import java.sql.ResultSet;

import java.sql.Statement;

public class Jdbc {

public static String driver="com.mysql.jdbc.Driver";

public static String url="jdbc:mysql://localhost:3306/db_studentinfo";

public static String user="root";

public static String pwd="123456";

public static Connection conn= getConnection();

public static Statement statement= getStatement();

public static Connection getConnection(){

if(conn==null){

try{

Class.forName(driver);

conn=DriverManager.getConnection(url,user,pwd);

}catch(Exception e){

e.printStackTrace();

}

}

return conn;

}

private static Statement getStatement(){

if(statement==null){

try{

statement=conn.createStatement();

}catch(Exception e){

e.printStackTrace();

}

}

return statement;

}

public static ResultSet getResultSet(String sql){

ResultSet rs=null;

try{

rs=statement.executeQuery(sql);

}catch(Exception e){

e.printStackTrace();

}

return rs;

}

public static void closeAll(ResultSet rs,Statement st,Connection cn){

try{

if(rs!=null){

rs.close();

}

if(st!=null){

st.close();

}

if(cn!=null){

cn.close();

}

}catch(Exception e){

e.printStackTrace();

}

}

}

创建一个Servlet,TestHttpReportServlet.java 如下:

package com.accord.test;

import java.io.File;

import java.io.IOException;

import java.util.HashMap;

import java.util.Map;

import javax.servlet.ServletContext;

import javax.servlet.ServletException;

import javax.servlet.http.HttpServlet;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

import net.sf.jasperreports.engine.JRDataSource;

import net.sf.jasperreports.engine.JRException;

import net.sf.jasperreports.engine.JRExporterParameter;

import net.sf.jasperreports.engine.JRRuntimeException;

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.JRMapArrayDataSource;

import net.sf.jasperreports.engine.export.JRHtmlExporter;

import net.sf.jasperreports.engine.export.JRPdfExporter;

import net.sf.jasperreports.engine.export.JRXlsExporter;

import net.sf.jasperreports.engine.export.JRXlsExporterParameter;

import net.sf.jasperreports.engine.util.JRLoader;

import com.accord.dao.Jdbc;

public class TestHttpReportServlet extends HttpServlet {

public static void main(String[] args) {

String path = "http://localhost:8080/JasperReports/TestHttpReportServlet";

String str = path.substring(0, path.lastIndexOf("/"));

System.out.println(str);

}

private static final long serialVersionUID = 1L;

public TestHttpReportServlet() {

super();

}

protected void doGet(HttpServletRequest request,

HttpServletResponse response) throws ServletException, IOException {

// System.out.println("1");

doPost(request, response);

}

@SuppressWarnings("deprecation")

protected void doPost(HttpServletRequest request,

HttpServletResponse response) throws ServletException, IOException {

ServletContext context = this.getServletConfig().getServletContext();

try {

//JasperCompileManager.compileReportToFile("E:/report/DbReport.jrxml");

JasperCompileManager.compileReportToFile(context.getRealPath("/reports/DbReport.jrxml"));

} catch (JRException e1) {

e1.printStackTrace();

}//编译jrxml文件,生成jasper文件

File reportFile = new File(context.getRealPath("/reports/DbReport.jasper"));

if (!reportFile.exists())

throw new JRRuntimeException("FileWebappReport.jasper "

+ "not found. The report design must be compiledfirst.");

Map map = new HashMap();

map.put("name", "张三");

try {

File jasperFile = new File(context.getRealPath("/reports/DbReport.jasper"));

JasperReport jasperReport = (JasperReport) JRLoader.loadObject(jasperFile);

JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport, map, Jdbc.getConnection());

String fileName = jasperPrint.getName() + ".html";

File destFile = new File(context.getRealPath("/reports"), fileName);

String destFileName = destFile.toString();

//生成html数据

JRHtmlExporter exporter = new JRHtmlExporter();

exporter.setParameter(JRExporterParameter.JASPER_PRINT, jasperPrint);

exporter.setParameter(JRExporterParameter.OUTPUT_FILE_NAME,destFileName);

exporter.setParameter(JRExporterParameter.CHARACTER_ENCODING,"GB2312"); // 关键是此句

exporter.exportReport();

System.out.println(request.getRequestURL());

String path = request.getRequestURL().toString();

String str = path.substring(0, path.lastIndexOf("/"));

response.sendRedirect(str + "/reports/" + fileName);

//生成Excel

/*JRXlsExporter xls = new JRXlsExporter();

xls.setParameter(JRXlsExporterParameter.JASPER_PRINT, jasperPrint);

xls.setParameter(JRXlsExporterParameter.OUTPUT_STREAM, response.getOutputStream());

xls.setParameter(JRXlsExporterParameter.IS_ONE_PAGE_PER_SHEET, Boolean.FALSE);

xls.setParameter(JRXlsExporterParameter.IS_WHITE_PAGE_BACKGROUND, Boolean.FALSE);

response.setHeader("Content-Disposition", "attachement;filename=first.xls");

response.setContentType("application/vnd_ms-excel");

xls.exportReport();*/

//生成pdf

/*JRPdfExporter pdf = new JRPdfExporter();

pdf.setParameter(JRExporterParameter.JASPER_PRINT, jasperPrint);

pdf.setParameter(JRExporterParameter.OUTPUT_STREAM, response.getOutputStream());

response.setHeader("Content-Disposition", "attachement;filename=first.pdf");

response.setContentType("application/pdf");

response.setCharacterEncoding("UTF-8");

pdf.exportReport();*/

} catch (JRException e) {

e.printStackTrace();

}

}

public JRDataSource getReportDataSource() {

JRMapArrayDataSource dataSource = new JRMapArrayDataSource(

getMaparray());

return dataSource;

}

public Map[] getMaparray() {

// map key键必须对应DbReport.jrxml中显示数据字段

Map map1 = new HashMap();

map1.put("id", 1);

map1.put("name", "aaa");

map1.put("age", "20");

Map map2 = new HashMap();

map2.put("id", 2);

map2.put("name", "bbb");

map2.put("age", "28");

Map map3 = new HashMap();

map3.put("id", 3);

map3.put("name", "ccc");

map3.put("age", "30");

Map[] mapArray = new Map[3];

mapArray[0] = map1;

mapArray[1] = map2;

mapArray[2] = map3;

return mapArray;

}

}

web.xml 如下:

Archetype Created Web Application

TestHttpReportServlet

TestHttpReportServlet

com.accord.test.TestHttpReportServlet

TestHttpReportServlet

/TestHttpReportServlet

打开浏览器,访问链接地址:http://localhost:8080/JasperReports/TestHttpReportServlet

TestHttpReport.java 如下:

package com.accord.test;

import java.io.File;

import java.io.IOException;

import java.util.HashMap;

import java.util.Map;

import javax.servlet.ServletContext;

import javax.servlet.http.HttpServlet;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

import net.sf.jasperreports.engine.JRDataSource;

import net.sf.jasperreports.engine.JRException;

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.JasperRunManager;

import net.sf.jasperreports.engine.data.JRMapArrayDataSource;

import net.sf.jasperreports.engine.export.JRXlsExporter;

import net.sf.jasperreports.engine.export.JRXlsExporterParameter;

import net.sf.jasperreports.engine.util.JRLoader;

import com.accord.dao.Jdbc;

@SuppressWarnings("serial")

public class TestHttpReport extends HttpServlet {

public void service(HttpServletRequest request,

HttpServletResponse response) {

try {

ServletContext context = this.getServletConfig().getServletContext();

//JasperCompileManager 编译管理器

//JasperFillManager 填充管理器

//JRXmlLoader xml加载器

//JasperPrintManager 打印管理器

//JasperExportManager 导出管理器

//JasperRunManager 运行管理器

//编译jrxml文件,生成jasper文件

JasperCompileManager.compileReportToFile(context.getRealPath("/reports/DbReport.jrxml"));

Map map = new HashMap();

map.put("name", "张三");

File jasperFile = new File(context.getRealPath("/reports/DbReport.jasper"));

JasperReport jasperReport = (JasperReport) JRLoader.loadObject(jasperFile);

JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport, map, Jdbc.getConnection());

//以map数组位数据源,生成html文件

JasperRunManager.runReportToHtmlFile(context.getRealPath("/reports/DbReport.jasper"), "E:/report/test2.html", map, getReportDataSource());

try {

//生成excel

JRXlsExporter xls = new JRXlsExporter();

xls.setParameter(JRXlsExporterParameter.JASPER_PRINT, jasperPrint);

xls.setParameter(JRXlsExporterParameter.OUTPUT_STREAM, response.getOutputStream());

xls.setParameter(JRXlsExporterParameter.IS_ONE_PAGE_PER_SHEET, Boolean.FALSE);

xls.setParameter(JRXlsExporterParameter.IS_WHITE_PAGE_BACKGROUND, Boolean.FALSE);

response.setHeader("Content-Disposition", "attachment;filename=first.xls");

response.setContentType("application/vnd_ms-excel");

xls.exportReport();

} catch (IOException e) {

e.printStackTrace();

}

} catch (JRException e) {

e.printStackTrace();

}

}

public JRDataSource getReportDataSource() {

JRMapArrayDataSource dataSource = new JRMapArrayDataSource(getMaparray());

return dataSource;

}

public Map[] getMaparray() {

//map key键必须对应DbReport.jrxml中显示数据字段

Map map1=new HashMap();

map1.put("id", 1);

map1.put("name", "aaa");

map1.put("age", "20");

Map map2=new HashMap();

map2.put("id", 2);

map2.put("name", "bbb");

map2.put("age", "28");

Map map3=new HashMap();

map3.put("id", 3);

map3.put("name", "ccc");

map3.put("age", "30");

Map[] mapArray=new Map[3];

mapArray[0]=map1;

mapArray[1]=map2;

mapArray[2]=map3;

return mapArray;

}

}

TestJrxmlToJasper.java 如下:

package com.accord.test;

import java.io.File;

import java.io.FileInputStream;

import java.io.InputStream;

import net.sf.jasperreports.engine.JRException;

import net.sf.jasperreports.engine.JasperCompileManager;

public class TestJrxmlToJasper {

public static void main(String[] args) throws Exception {

String path = "E:/report/DbReport.jrxml";

File file = new File(path);

String parentPath = file.getParent();

String jrxmlDestSourcePath = "E:/report/DbReport.jasper";

JasperCompileManager.compileReportToFile(path,

jrxmlDestSourcePath);

InputStream isRef = new FileInputStream(new File(jrxmlDestSourcePath));

/*ServletOutputStream sosRef = response.getOutputStream();

response.setContentType("application/pdf");

JasperRunManager.runReportToPdfStream(isRef,sosRef,new HashMap(),

new JREmptyDataSource());

sosRef.flush();

sosRef.close();*/

}

}

TestReport.java 如下:

package com.accord.test;

import java.io.File;

import java.util.HashMap;

import java.util.Map;

import com.accord.dao.Jdbc;

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.export.JRHtmlExporter;

import net.sf.jasperreports.engine.export.JRHtmlExporterParameter;

import net.sf.jasperreports.engine.export.JRXlsExporter;

import net.sf.jasperreports.engine.export.JRXlsExporterParameter;

import net.sf.jasperreports.engine.export.JRXmlExporterParameter;

import net.sf.jasperreports.engine.util.JRLoader;

public class TestReport {

public static void main(String[] args) {

service();

}

//protected void service(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {\

public static void service(){

try{

//ServletContext context = this.getServletConfig().getServletContext();

//JasperCompileManager 编译管理器

//JasperFillManager 填充管理器

//JRXmlLoader xml加载器

//JasperPrintManager 打印管理器

//JasperExportManager 导出管理器

JasperCompileManager.compileReportToFile("E:/report/DbReport.jrxml");//编译jrxml文件,生成jasper文件

Map map=new HashMap();//参数map

map.put("name", "张三");

//生成jrprint文件

//JasperFillManager.fillReportToFile(context.getRealPath("/reports/DbReport.jasper"), map, JDBC.conn);

File jasperFile=new File("E:/report/DbReport.jasper");

JasperReport jasperReport =(JasperReport)JRLoader.loadObject(jasperFile);

JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport, map,Jdbc.getConnection());

File file=new File("E:/report/DbReport.html");

//生成html 测试成功

/*JRHtmlExporter html = new JRHtmlExporter();

html.setParameter(JRHtmlExporterParameter.JASPER_PRINT, jasperPrint);

html.setParameter(JRHtmlExporterParameter.OUTPUT_FILE_NAME,"E:/report/DbReport.html");//生成文件

//html.setParameter(JRHtmlExporterParameter.OUTPUT_WRITER,response.getWriter()); // web页面显示

html.setParameter(JRHtmlExporterParameter.IS_USING_IMAGES_TO_ALIGN,Boolean.FALSE);

html.setParameter(JRExporterParameter.CHARACTER_ENCODING, "utf-8");

html.exportReport();*/

//生成excel

/*JRXlsExporter xls=new JRXlsExporter();

xls.setParameter(JRXlsExporterParameter.JASPER_PRINT, jasperPrint);

xls.setParameter(JRXlsExporterParameter.OUTPUT_STREAM, respon);

xls.exportReport();*/

//生成pdf

/*

JRPdfExporter pdf = new JRPdfExporter();

*/

}catch(Exception e){

e.printStackTrace();

}

}

}

注:JasperReport 生成的Pdf文件,中文不显示,这个没有解决,路过的大神指点一下!  992544491@qq.com

jasperreport生成html,JasperReport 生成Html、Excel、Pdf文件相关推荐

  1. Web方式预览Office/Word/Excel/pdf文件解决方案

    Web方式预览Office/Word/Excel/pdf文件解决方案 参考文章: (1)Web方式预览Office/Word/Excel/pdf文件解决方案 (2)https://www.cnblog ...

  2. 在线查看word,excel,pdf文件解决

    眼看着项目要结束,提出新的需求(-_-!!习惯成自然了)需要支持在线查看word,excel,pdf文件,网页中嵌套word的时候,不让word文档占据整个网页,页面内还要有审批等功能,第一感觉想到控 ...

  3. h5页面如何预览excel文件_移动端页面,如何解析预览 word/excel/PDF文件?

    展开全部 利用Office2007以上版本的一个PDF插件SaveAsPDFandXPS.exe可以导出PDF文件,然后再利用免费的swftools.exe工具生成swf格式的Flash文件,网页中加 ...

  4. vue 在线访问word,excel,pdf 文件以及打印

    git 项目代码 一.pdf 1. vue-pdf 安装 npm i --save vue-pdf 语法 在组件种使用import pdf from 'vue-pdf'pdf.createLoadin ...

  5. java xpdf 转换成html_java将Word/Excel/PDF文件转换成HTML整理

    项目开发过程中,需求涉及到了各种文档转换为HTML或者网页易显示格式,现在将实现方式整理如下: 一.使用Jacob转换Word,Excel为HTML "JACOB一个Java-COM中间件. ...

  6. java word转成表格_java将Word/Excel/PDF文件转换成HTML整理

    项目开发过程中,需求涉及到了各种文档转换为HTML或者网页易显示格式,现在将实现方式整理如下: 一.使用Jacob转换Word,Excel为HTML "JACOB一个Java-COM中间件. ...

  7. SpringBoot+Vue+mybatis生成pdf文件(表头跟页码,适应上传linux服务器后的操作)

    SpringBoot+Vue+mybatis生成pdf文件(表头跟页码,适应上传linux服务器后的操作) 为什么使用后端去生成 说明 依赖 后端目录 控制器代码 模板代码 前端代碼 最終效果 为什么 ...

  8. java使用world模板动态生成PDF文件

    根据项目需求,需要用到一个功能,根据页面参数需要动态的生成一个world,并将world生成两份PDF文件,一份正式文件,一份临时的电子文件(带有二维码,扫描可以下载正式文件的电子版本).同时上传到文 ...

  9. PDF功能实现1——Java实现动态页面在后台生成PDF文件

    # 项目描述: 1.项目功能需求:增加证明打印功能,打印时,需将内容生成pdf文件并保存,然后数据库增加一笔打印记录 2.功能分析:由于不单单只是页面打印,所以比较常用的window.print()首 ...

  10. 使用iText7生成pdf文件

    在写自动生成数据库设计Word文档文章后,朋友建议再实现生成pdf格式,并推荐的iText7,我花了点时间学习了一下itext,实现了这个功能. 首先引入依赖 <dependency>&l ...

最新文章

  1. Unity中对象池的使用
  2. IOS开发基础知识--碎片34
  3. python保存图片到指定路径_python将处理好的图像保存到指定目录下的方法
  4. oracle查看列数据类型
  5. java扫雷随机地雷_原创扫雷(未添加随机分布地雷),想看就进来看下吧
  6. java 反射 获取成员_java 反射获取成员
  7. windows下hadoop的单机伪分布式部署(3)
  8. Vue版todolist案例
  9. 【Siddhi】Siddhi的window操作
  10. LINQ IN ACTION读书笔记:LINQ 使用连接 1、组连接 2、内连接 3、左外连接 4、交叉连接 使用和区别...
  11. mysql 新增字段时判断字段是否存在
  12. 印度十大最好电影排行
  13. Status code :200 OK (from disk cache)
  14. Java基础案例教程———【任务4-2】模拟物流快递系统
  15. 博士阶段能学到什么硕士学不到的东西?
  16. 华硕主板固态硬盘不识别_[主板] 开机后无法识别硬盘或SSD的故障排除方式
  17. 课堂派考完直接看成绩怎么说(已被修复)
  18. 【泛融顾问分享】互联网金融未来走向预测
  19. 干货,看微信小程序后台用户数据如何演变和递增
  20. 如何通过Gitalk评论插件,5分钟为你的博客快速集成评论功能

热门文章

  1. 【IAR】错误:Error while running Linker
  2. Jupyter Notebook ipykernel Busy问题解决
  3. android 系统自带主题样式及自定义主题样式
  4. 小窍门:如何快速创建教育邮箱?如何给外贸邮箱发邮件?
  5. VMware12 无法识别U盘
  6. linux 声卡 添加GPIO PA开关,如何在一个声卡添加pa codec设备
  7. MacBook 安装MacOS+Parrot(Kali)双系统
  8. continue的使用
  9. ai绘画工具Stable Diffusion设置中文界面(保姆级)
  10. 一个菜鸟程序员的进阶之路