1. private Map formObjGenerationMKey(ActionForm form) {
//TODO:为什么,方法里map有值,而对应调用方法中的map缺没值呢?map不是引用类型吗?
LazyValidatorForm lazyForm = (LazyValidatorForm) form;
return lazyForm.getMap();
}
2.
/**
* 导出多sheet的excel文件
* @throws JRException
* @throws IOException
*/
public void servletExportMultiSheetXls(String[] arr, List[] list, Map[] maps,String fileName) throws JRException, IOException {
ArrayList<JasperPrint> jaserPrints = new ArrayList<JasperPrint>();
JasperPrint jasperPrint = null;
OutputStream output = response.getOutputStream();
response.setContentType(getContentType(DocType.XLS));
response.setHeader("Content-Disposition", "attachment; filename=\"" + URLEncoder.encode(fileName, "UTF-8") + "\"");
for (int i = 0; i < arr.length; i++) {
JRDataSource dataSource = new JRBeanCollectionDataSource(list[i]);
jasperPrint = this.getJasperPrint(arr[i], maps[i], dataSource);
jaserPrints.add(jasperPrint);
}
JRAbstractExporter exporter = getJRExporter(DocType.XLS);
exporter.setParameter(JRXlsExporterParameter.OUTPUT_STREAM, output);
exporter.setParameter(JRXlsExporterParameter.JASPER_PRINT_LIST, jaserPrints);
exporter.setParameter(JRXlsExporterParameter.IS_REMOVE_EMPTY_SPACE_BETWEEN_ROWS, Boolean.TRUE); // 删除记录最下面的空行
exporter.setParameter(JRXlsExporterParameter.IS_ONE_PAGE_PER_SHEET, Boolean.FALSE);// 删除多余的ColumnHeader
exporter.setParameter(JRXlsExporterParameter.IS_WHITE_PAGE_BACKGROUND, Boolean.FALSE);// 显示边框
//exporter.setParameter(JRXlsExporterParameter.IS_ONE_PAGE_PER_SHEET,true);
exporter.exportReport();
}