DynamicReports
try { response.setCharacterEncoding("UTF-8"); response.setHeader("Content-disposition", "attachment;filename=" + URLEncoder.encode("文件名", "UTF-8") + ".xls"); JRDataSource ds = new JRBeanCollectionDataSource(list); List<ColumnBuilder> columnList = new ArrayList<ColumnBuilder>(); columnList.add(Columns .column("任务单号", "TASKNUM", DataTypes.stringType()) .setHorizontalAlignment(HorizontalAlignment.CENTER) .setWidth(150)); columnList.add(Columns.column("任务标题", "TASKTITLE", DataTypes.stringType()).setWidth(250)); columnList.add(Columns.column("任务内容", "TASKCONTENT", DataTypes.stringType()).setWidth(250)); columnList.add(Columns.column("检查企业", "OBJECTNAME", DataTypes.stringType()).setWidth(250)); columnList.add(Columns.column("任务类型", "TASKTYPE", DataTypes.stringType())); columnList.add(Columns.column("任务来源", "TASKSOURCENAME", DataTypes.stringType())); columnList.add(Columns.column("开始时间", "STARTTIME", DataTypes.stringType()).setWidth(120)); columnList.add(Columns.column("截止时间", "ENDTIME", DataTypes.stringType()).setWidth(120)); columnList.add(Columns.column("紧急程度", "URGENCYNAME", DataTypes.stringType())); columnList.add(Columns.column("发起人", "CREATERNAME", DataTypes.stringType())); columnList.add(Columns.column("任务状态", "TASKSTATUS", DataTypes.stringType())); DynamicreportsReport.toXlsReport(columnList, ds, response.getOutputStream()); } catch (Exception e) { e.printStackTrace(); }
import static net.sf.dynamicreports.report.builder.DynamicReports.export; import static net.sf.dynamicreports.report.builder.DynamicReports.report; import java.io.OutputStream; import java.util.List; import net.sf.dynamicreports.jasper.builder.JasperReportBuilder; import net.sf.dynamicreports.jasper.builder.export.JasperXlsExporterBuilder; import net.sf.dynamicreports.jasper.constant.JasperProperty; import net.sf.dynamicreports.report.builder.column.ColumnBuilder; import net.sf.jasperreports.engine.JRDataSource; public class DynamicreportsReport { public static void toXlsReport(List<ColumnBuilder> columnList, JRDataSource dataSource, OutputStream out) throws Exception { try { JasperXlsExporterBuilder xlsExporter = export.xlsExporter(out) .setDetectCellType(true).setIgnorePageMargins(true) .setWhitePageBackground(false) .setRemoveEmptySpaceBetweenColumns(true); JasperReportBuilder exporterBuilder = report() .addProperty(JasperProperty.EXPORT_XLS_FREEZE_ROW, "2") .ignorePageWidth().ignorePagination(); for (ColumnBuilder textColumnBuilder : columnList) { exporterBuilder = exporterBuilder.columns(textColumnBuilder); } exporterBuilder.setDataSource(dataSource).toXls(xlsExporter); // out.flush(); } catch (Exception e) { e.printStackTrace(); } } }