自己把包先导入。不知道导什么包的可以百度,
第一个生成方式 ,读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("生成成功!");
}
}