当前位置: 代码迷 >> Java Web开发 >> iReport+Jasper 导出 Word文档解决方法
  详细解决方案

iReport+Jasper 导出 Word文档解决方法

热度:1161   发布时间:2016-04-16 21:55:49.0
iReport+Jasper 导出 Word文档
本人刚刚学习iReport,发现使用如下代码确实可以根据模板导出想要的文档格式,可是Word文档不尽人意啊,所以特来求救!
private void generateReportByMap(){
// 通过URL获取模板
File reportTemplate = new File("D:/Myeclipse/Learn/Report/mapReport/test.jasper");
// 设置文件路径与名称
String filePath = reportTemplate.getParent();
String fileName = reportTemplate.getName().split("\\.")[0];
// 初始化传入iReport模板的Map参数
HashMap<String,String> parameterMap = new HashMap<String,String>();
parameterMap.put("name", "Maven");
parameterMap.put("desc",null);
// 创建空的数据源
JRDataSource dataSource = new JREmptyDataSource();
try {
// 通过模板、Map参数、数据源 创建Jasper对象,使用这个对象可以创建导出各种格式文件的实例对象
JasperPrint jasperPrint = JasperFillManager.fillReport(reportTemplate.getPath(),parameterMap, dataSource);
// 通过Jasper对象创建指定的Excel文件导出对象
JExcelApiExporter exporter = new JExcelApiExporter();
// 设置导出文件的相关信息,并且导出文件在指定目录下(在这里指reportName所指的的目录)
String reportName = filePath+"\\"+fileName+".xls";
exporter.setParameter(JRExporterParameter.OUTPUT_FILE_NAME,reportName);
exporter.setParameter(JRExporterParameter.JASPER_PRINT, jasperPrint);
exporter.exportReport();

reportName = filePath+"\\"+fileName+".html";
JasperExportManager.exportReportToHtmlFile(jasperPrint, reportName);

reportName = filePath+"\\"+fileName+".pdf";
JasperExportManager.exportReportToPdfFile(jasperPrint, reportName);

reportName = filePath+"\\"+fileName+".html";
JRHtmlExporter htmlReport = new JRHtmlExporter();
htmlReport.setParameter(JRExporterParameter.OUTPUT_FILE_NAME,reportName);
htmlReport.setParameter(JRExporterParameter.JASPER_PRINT, jasperPrint);
htmlReport.exportReport();

reportName = filePath+"\\"+fileName+".pdf";
JRPdfExporter pdfReport = new JRPdfExporter();
pdfReport.setParameter(JRExporterParameter.OUTPUT_FILE_NAME,reportName);
pdfReport.setParameter(JRExporterParameter.JASPER_PRINT, jasperPrint);
pdfReport.exportReport();
 

reportName = filePath+"\\"+fileName+".doc";
JRRtfExporter docReport = new JRRtfExporter();
docReport.setParameter(JRExporterParameter.OUTPUT_FILE_NAME,reportName);
docReport.setParameter(JRExporterParameter.JASPER_PRINT, jasperPrint);
docReport.exportReport();

} catch (JRException e) {
e.printStackTrace();
}
}
但是Word文档的格式与其他文档的格式明显不一样(其他文档都能够横向拖动,所以模板过多的[列在文档中都能够呈现,但是Word不行,那么如何才能避免这个问题),希望有人能够帮助。
------解决思路----------------------
你是想 word 里也和 iReport 的效果一样?
  相关解决方案