jasperreport 生成报表三种方式,复制就可用。

自己把包先导入。不知道导什么包的可以百度,

第一个生成方式 ,读xml文件

@Autowired

private static ServletContext servletContext = ContextLoader.getCurrentWebApplicationContext()
.getServletContext();
public static void main(String[] args) throws FileNotFoundException, JRException, SQLException, ClassNotFoundException {
String jrxmlFileName = "M604_pendingtransactions";
 jrxmlFileName = "/WEB-INF/jrxml/" + jrxmlFileName + ".jrxml";
File file = FileUtil.getFile(jrxmlFileName, servletContext);
// File file =  new File(jrxmlFileName);
Map<String,Object> parameters = new HashMap<String,Object>  ();  
Class.forName("com.mysql.jdbc.Driver");
Connection conn = DriverManager.getConnection("数据库地址");
JasperPrint jprint = (JasperPrint) JasperFillManager.fillReport(
JasperCompileManager.compileReport(new FileInputStream(file)),
parameters,conn);
FileOutputStream out = null;
out = new FileOutputStream(new File ("D:"+File.separatorChar+"excel.xls"));  
            JRXlsExporter exporter = new JRXlsExporter();
            JasperReportsUtils.render(exporter, jprint, out);
       System.out.println("生成成功!");

   }  

报表第二种方式,http请求,servlet 处理流

@RequestMapping(value = "/expReport")
public void expReport(String p, HttpServletRequest request,
HttpServletResponse response, ModelMap modelMap) throws Exception {
Map hm = RequestSupport.getParameters();
String jrxmlFileName = (String) hm.get("j");
jrxmlFileName = "/WEB-INF/*** ".jrxml";
File file = FileUtil.getFile(jrxmlFileName, servletContext);--文件上下文
String fileName = (String) hm.get("reportName");
System.out.println(file.getPath());
// Generate jasper print
JasperPrint jprint = (JasperPrint) JasperFillManager.fillReport(
JasperCompileManager.compileReport(new FileInputStream(file)),
hm, dataSource.getConnection());--数据源
JRXlsExporter exporter = new JRXlsExporter();
response.setHeader("Content-Disposition", "attachment;filename="
+ fileName + ".xls");
response.setContentType("application/xls");
response.setCharacterEncoding("UTF-8");
JasperReportsUtils.render(exporter, jprint, response.getOutputStream());
}


生成报表第三种方式 :

public static void main(String[] args) throws FileNotFoundException, JRException, SQLException, ClassNotFoundException {
String jrxmlFileName = "D:/test.jrxml";
File file =  new File(jrxmlFileName);
Map<String,Object> parameters = new HashMap<String,Object>  ();  
Class.forName("com.mysql.jdbc.Driver");
Connection conn = DriverManager.getConnection("数据库地址");
JasperPrint jprint = (JasperPrint) JasperFillManager.fillReport(
JasperCompileManager.compileReport(new FileInputStream(file)),
parameters,conn);
File f = new File("D:/excel.xls"); 
OutputStream output = new FileOutputStream(f);  
            JRXlsExporter exporter = new JRXlsExporter();
            exporter.setParameter(JRExporterParameter.JASPER_PRINT, jprint);    
            exporter.setParameter(JRExporterParameter.OUTPUT_FILE_NAME,"D:/excel.xls");    
            exporter.exportReport();  
       System.out.println("生成成功!");
   }  
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值