JasperReport输出Excel报表
程序员文章站
2022-03-11 12:02:47
...
Excel格式:
/**
* 导出报表
*
* @param request
* @param response
* @param reportFilePath
* @param params
* @param con
* @param fileName
* @throws JasperReportException
*/
public void export(HttpServletRequest request,
HttpServletResponse response,
String reportFilePath, Map params,
Connection con,
String fileName) throws JasperReportException {
JasperPrint jasperPrint = new JasperPrintWithConnection(reportFilePath, params, con).getJasperPrint();
// 将填充完的japserPrint放入session中。
request.getSession().setAttribute(BaseHttpServlet.DEFAULT_JASPER_PRINT_SESSION_ATTRIBUTE, jasperPrint);
// 拿到japserPrintList
List jasperPrintList = BaseHttpServlet.getJasperPrintList(request);
// 若没有JasperPrintList,则抛出异常
if (jasperPrintList == null) {
throw new JasperReportException("在Http Session中没有找到JasperPrint List");
}
try {
OutputStream ouputStream = response.getOutputStream();
try {
response.setContentType("application/xls");
response.setCharacterEncoding("UTF-8");
if (fileName == null || fileName.equals(""))
response.setHeader("Content-Disposition", "inline; filename=\"noTitle.xls\"");
else {
response.setHeader("Content-Disposition", "inline; filename=\""
+ URLEncoder.encode(fileName, "UTF-8") + ".xls\"");
}
// Xls格式的导出器 JRXlsAbstractExport
JRXlsAbstractExporter exporter = getXlsExporter();
// 在导出器中放入要导出的japserPrintList
exporter.setParameter(JRExporterParameter.JASPER_PRINT_LIST, jasperPrintList);
exporter.setParameter(JRExporterParameter.OUTPUT_STREAM, ouputStream);
// 设置Xls的属性
exporter.setParameter(JRXlsAbstractExporterParameter.IS_ONE_PAGE_PER_SHEET, Boolean.FALSE);
exporter.setParameter(JRXlsAbstractExporterParameter.IS_WHITE_PAGE_BACKGROUND, Boolean.FALSE);
// 导出
exporter.exportReport();
} catch (JRException e) {
e.printStackTrace();
throw new JasperReportException("在生成XLS报表时发生错误!");
} finally {
if (ouputStream != null) {
try {
ouputStream.close();
} catch (IOException ex) {
}
}
}
} catch (IOException ioe) {
ioe.printStackTrace();
throw new JasperReportException("从Response中取得OutputStream时发生错误!");
}
}
上一篇: Windows下Git Bash设置别名
下一篇: 小周后与李煜的爱情为什么得不到世人祝福?
推荐阅读
-
php输出excel的简单方法(csv格式)
-
phpexcel导出excel文件输出求和问题
-
JSP动态输出Excel及中文乱码的解决
-
Python 实现自动化Excel报表的步骤
-
使用 Excel Services ,结合 Analysis Services 在 SharePoint 中发布报表
-
android开发之输出excel文档实例
-
C#实现将DataTable内容输出到Excel表格的方法
-
将datagrid控件内容输出到excel文件
-
Excel借助数据透视表的报表筛选功能快速批量创建N个工作表名
-
使用 Excel Services ,结合 Analysis Services 在 SharePoint 中发布报表