Jasper reports I-Report 4.1.1导出excel表格问题

Jasper reports I-Report 4.1.1导出excel表格问题,jasper-reports,ireport,Jasper Reports,Ireport,当我从jasper导出报告时,它将以.xlsx格式导出,但当从java代码导出相同的jrxml时,它不会以.xlsx格式导出 java代码如下所示:- exporterXLS.setParameter(JRXlsExporterParameter.SHEET_NAMES, sheetnames ); exporterXLS.setParameter(JRXlsExporterParameter.JASPER_PRINT_LIST, list); exporterXLS.setParameter(

当我从jasper导出报告时,它将以.xlsx格式导出,但当从java代码导出相同的jrxml时,它不会以.xlsx格式导出

java代码如下所示:-

exporterXLS.setParameter(JRXlsExporterParameter.SHEET_NAMES, sheetnames );
exporterXLS.setParameter(JRXlsExporterParameter.JASPER_PRINT_LIST, list);
exporterXLS.setParameter(JRXlsExporterParameter.OUTPUT_STREAM, output); 
exporterXLS.exportReport(); 

此代码适用于另一个jrxml,该jrxml将在.xlsx中导出

请参见下面的示例

JRXlsxExporter exporter = new JRXlsxExporter();
exporter.setParameter(JRXlsExporterParameter.IGNORE_PAGE_MARGINS, Boolean.TRUE);
        exporter.setParameter(JRXlsExporterParameter.OFFSET_X, 0);
        exporter.setParameter(JRXlsExporterParameter.IS_IGNORE_CELL_BORDER, Boolean.FALSE);
        exporter.setParameter(JRExporterParameter.OUTPUT_FILE_NAME, destination);
        exporter.setParameter(JRXlsExporterParameter.IS_COLLAPSE_ROW_SPAN, Boolean.TRUE);
        exporter.setParameter(JRXlsExporterParameter.IS_REMOVE_EMPTY_SPACE_BETWEEN_COLUMNS, Boolean.TRUE);
        exporter.setParameter(JRXlsExporterParameter.IS_REMOVE_EMPTY_SPACE_BETWEEN_ROWS, Boolean.TRUE);
        exporter.setParameter(JRXlsExporterParameter.IS_ONE_PAGE_PER_SHEET, Boolean.TRUE);
        exporter.setParameter(JRXlsExporterParameter.IS_DETECT_CELL_TYPE, Boolean.TRUE);
        exporter.setParameter(JRXlsExporterParameter.IS_WHITE_PAGE_BACKGROUND, Boolean.FALSE);
        exporter.exportReport();
我认为您使用的是
JRXlsEporter
而不是
jrxlsxporter

PS:请注意导出器之前的额外x:D

我使用了xlsx导出器,但当我从java代码以xlsx格式导出excel时,excel已损坏OK,那么我猜是多页导出,您没有正确添加打印(jasper打印)…这是单页导出,只有一个打印对象。。。!!我删除了所有带区中的所有字段,这意味着我试图从java代码中导出一个空jrxml,但仍然得到相同的错误OutputStream output=new FileOutputStream(new File(reportVO.getxFilePath());JRxlsExporterxls=新的JRXlsExporter();exporterXLS.setParameter(JRXlsExporterParameter.SHEET_名称,sheetnames);exporterXLS.setParameter(JRXlsExporterParameter.JASPER\u PRINT\u LIST,LIST);exporterXLS.setParameter(JRXlsExporterParameter.OUTPUT\u流,输出);exporterXLS.exportReport();嗯,我不完全使用输出作为输出,正如您在我的代码中看到的,我只是将文件名和所需的输出文件名作为字符串传递,即“temp.xlsx”。。!!PS:你们在哪里提供JasperPrint呢。。!!???我什么也看不见。。