iReport导出Excel报表时为什么不出数据,其他输出格式都能显示数据

privatevoidexcelAction(HttpServletRequestrequest,HttpServletResponseresponse)throwsEx... private void excelAction(HttpServletRequest request, HttpServletResponse response) throws Exception
{
File jasperfile = new File(request.getSession().getServletContext().getRealPath("/jaspers/report4.jasper"));
JasperReport jasperReport = (JasperReport) JRLoader.loadObject(jasperfile);
File destFile = new File(jasperfile.getParent() + "\\report4.xls");
JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport, new HashMap<String, Object>(), conn);
exportExcel(jasperPrint, destFile);
response.sendRedirect("jaspers/report4.xls");
}

private void exportExcel(JasperPrint jasperPrint, File outfile) throws JRException, SQLException {
RXlsxExporter xlsExporter = new JRXlsxExporter();
xlsExporter.setParameter(JRExporterParameter.JASPER_PRINT, jasperPrint);
xlsExporter.setParameter(JRExporterParameter.OUTPUT_FILE, outfile);
xlsExporter.setParameter(JRXlsExporterParameter.IS_REMOVE_EMPTY_SPACE_BETWEEN_ROWS,Boolean.TRUE);
xlsExporter.setParameter(JRXlsExporterParameter.IS_ONE_PAGE_PER_SHEET,Boolean.FALSE);
xlsExporter.setParameter(JRXlsExporterParameter.IS_REMOVE_EMPTY_SPACE_BETWEEN_COLUMNS,Boolean.TRUE);
xlsExporter.setParameter(JRXlsExporterParameter.IS_WHITE_PAGE_BACKGROUND, Boolean.FALSE);
xlsExporter.setParameter(JRXlsExporterParameter.IS_FONT_SIZE_FIX_ENABLED,Boolean.TRUE);
xlsExporter.exportReport();
conn.close();
}
展开
 我来答
Rosen326
2011-12-30 · TA获得超过633个赞
知道小有建树答主
回答量:279
采纳率:100%
帮助的人:230万
展开全部
用这个试试
System.out.println("导出excel.........");
response.setContentType("application/vnd.ms-excel");
String filename = null;
if(exportFileName != null && !exportFileName.equals("")){
filename = exportFileName + ".xls";
}else{
filename = DateTime.getSystemDateTimeString() + ".xls";
}
String fileName = new String(filename.getBytes("GBK"),
"ISO8859_1");
response.setHeader("Content-disposition",
"attachment; filename=" + fileName);
JasperReport rep = (JasperReport) JRLoader.loadObject(reportFile);
jasperPrint = JasperFillManager.fillReport(rep, parameters,
conn);
ServletOutputStream ouputStream = response.getOutputStream();
JRXlsExporter exporter = new JRXlsExporter();
exporter.setParameter(JRExporterParameter.JASPER_PRINT,jasperPrint);
exporter.setParameter(JRExporterParameter.OUTPUT_STREAM,ouputStream);
exporter.setParameter(JRXlsExporterParameter.IS_REMOVE_EMPTY_SPACE_BETWEEN_ROWS,Boolean.TRUE);
exporter.setParameter(JRXlsExporterParameter.IS_ONE_PAGE_PER_SHEET,Boolean.FALSE);
exporter.setParameter(JRXlsExporterParameter.IS_WHITE_PAGE_BACKGROUND,Boolean.FALSE);
exporter.exportReport();
ouputStream.flush();
ouputStream.close();
wms1755
2013-04-07
知道答主
回答量:45
采纳率:100%
帮助的人:7万
展开全部
是什么原因呀?? 我也遇到这个问题了,十几个报表中,有一个不能导出数据 ,但是单元格已经占用了。就是有几页空页面,但是没有数据。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式