模板方式导出
- 添加批注
jx:area(lastCell="P3")
jx:each(items="workTicketHighRiskList" var="work" lastCell="P3")
- 添加占位符
${work.enterpriseName}
类似这样
相关代码
//获取模板地址
String templatesPath = "/templates/HighRiskSheetExportTemplate.xlsx";
InputStream inputStream = null;
OutputStream outputStream;
try {
inputStream = this.getClass().getResourceAsStream(templatesPath);
name = URLEncoder.encode(name, "UTF-8");
response.setContentType("application/octet-stream;charset=utf-8");
response.setHeader("Content-Disposition", "attachment; filename*=utf-8'zh_cn'" + name);
response.resetBuffer();
outputStream = response.getOutputStream();
//获取导出数据集合
List<AppWorkTicketHighRiskCountHyResult> resultList=new ArrayList();
List<Map<String, Object>> workTicketHighRiskList = new ArrayList<>();
for (AppWorkTicketHighRiskCountHyResult result : resultList) {
Map<String, Object> workTicketHighRiskMap = new HashMap<>();
workTicketHighRiskMap.put("enterpriseName", result.getEnterpriseName());
workTicketHighRiskMap.put("workTicketValid", result.getWorkTicketValid());
workTicketHighRiskMap.put("workTicketInvalid", result.getWorkTicketInvalid());
workTicketHighRiskMap.put("workTicketCount", result.getWorkTicketCount());
workTicketHighRiskList.add(workTicketHighRiskMap);
}
resultData.put("workTicketHighRiskList", workTicketHighRiskList);
ExcelExportUtils.exportExcel(inputStream, outputStream, resultData);
} catch (Exception e) {
e.printStackTrace();
logger.error("导出错误:" + e);
}
注解方式导出
结果集实体上添加注解
@Excel(name = “xx”)
根据条件查询到要导出的结果集
//对应的要导出的数据列表
ArrayList<AppMajorHazardExcelExportVO> list = new ArrayList<>();
ExcelExportManage.exportExcel(list, null, "数据导出", AppMajorHazardExcelExportVO.class, "指定的导出的文件名称.xls", res);
ExcelExportManage 工具类
public class ExcelExportManage {
private static final Logger log = LoggerFactory.getLogger(ExcelExportManage.class);
public ExcelExportManage() {
}
public static void exportExcel(List<?> list, String title, String sheetName, Class<?> pojoClass, String fileName, boolean isCreateHeader, HttpServletResponse response) {
ExportParams exportParams = new ExportParams(title, sheetName);
exportParams.setCreateHeadRows(isCreateHeader);
defaultExport(list, pojoClass, fileName, response, exportParams);
}
public static void exportExcel(List<?> list, String title, String sheetName, Class<?> pojoClass, String fileName, HttpServletResponse response) {
defaultExport(list, pojoClass, fileName, response, new ExportParams(title, sheetName));
}
public static void exportExcel(List<Map<String, Object>> list, String fileName, HttpServletResponse response) {
defaultExport(list, fileName, response);
}
public static void exportBigExcel(Class<?> pojoClass, String fileName, IExcelExportServer iExcelExportServer, Object queryParams, HttpServletResponse response) {
ExportParams exportParams = new ExportParams();
defaultBigExport(exportParams, pojoClass, fileName, iExcelExportServer, queryParams, response);
}
public static void exportBigExcel(ExportParams exportParams, Class<?> pojoClass, String fileName, IExcelExportServer iExcelExportServer, Object queryParams, HttpServletResponse response) {
defaultBigExport(exportParams, pojoClass, fileName, iExcelExportServer, queryParams, response);
}
public static void exportBigExcel(String title, String sheetName, Class<?> pojoClass, String fileName, IExcelExportServer iExcelExportServer, Object queryParams, HttpServletResponse response) {
ExportParams exportParams = new ExportParams(title, sheetName);
defaultBigExport(exportParams, pojoClass, fileName, iExcelExportServer, queryParams, response);
}
private static void defaultExport(List<?> list, Class<?> pojoClass, String fileName, HttpServletResponse response, ExportParams exportParams) {
Workbook workbook = ExcelExportUtil.exportExcel(exportParams, pojoClass, list);
if (workbook != null) {
}
downLoadExcel(fileName, response, workbook);
}
private static void defaultBigExport(ExportParams exportParams, Class<?> pojoClass, String fileName, IExcelExportServer iExcelExportServer, Object queryParams, HttpServletResponse response) {
Workbook workbook = ExcelExportUtil.exportBigExcel(exportParams, pojoClass, iExcelExportServer, queryParams);
if (workbook != null) {
}
downLoadExcel(fileName, response, workbook);
}
private static void downLoadExcel(String fileName, HttpServletResponse response, Workbook workbook) {
try {
response.setCharacterEncoding("UTF-8");
response.setHeader("content-Type", "application/vnd.ms-excel");
response.setHeader("Content-Disposition", "attachment;filename=" + URLEncoder.encode(fileName, "UTF-8"));
workbook.write(response.getOutputStream());
} catch (IOException var4) {
log.error("导出失败!{}", var4.getMessage());
}
}
private static void defaultExport(List<Map<String, Object>> list, String fileName, HttpServletResponse response) {
Workbook workbook = ExcelExportUtil.exportExcel(list, ExcelType.HSSF);
if (workbook != null) {
}
downLoadExcel(fileName, response, workbook);
}
public static SXSSFWorkbook getSXSSFWorkbookAssets(String sheetName, String[] titles, int[] columnLength, int[] columnHidden, String[] names, CellRangeAddressList rangeAddressList, CellRangeAddressList rangeAddressListNumber) {
SXSSFWorkbook workbook = new SXSSFWorkbook();
CellStyle cellStyleTitle = workbook.createCellStyle();
cellStyleTitle.setBorderBottom(BorderStyle.THIN);
cellStyleTitle.setBorderLeft(BorderStyle.THIN);
cellStyleTitle.setBorderTop(BorderStyle.THIN);
cellStyleTitle.setBorderRight(BorderStyle.THIN);
cellStyleTitle.setAlignment(HorizontalAlignment.CENTER);
cellStyleTitle.setVerticalAlignment(VerticalAlignment.CENTER);
Font fontTitle = workbook.createFont();
fontTitle.setFontName("宋体");
fontTitle.setFontHeightInPoints((short)12);
fontTitle.setBold(true);
cellStyleTitle.setFont(fontTitle);
cellStyleTitle.setWrapText(true);
Sheet sheet = workbook.createSheet(sheetName);
DataValidationHelper helper;
DataValidationConstraint numericConstraint;
if (names != null && rangeAddressList != null) {
helper = sheet.getDataValidationHelper();
numericConstraint = helper.createExplicitListConstraint(names);
DataValidation dataValidation = helper.createValidation(numericConstraint, rangeAddressList);
if (dataValidation instanceof XSSFDataValidation) {
dataValidation.setSuppressDropDownArrow(true);
dataValidation.setShowErrorBox(true);
} else {
dataValidation.setSuppressDropDownArrow(false);
}
sheet.addValidationData(dataValidation);
}
if (rangeAddressListNumber != null) {
helper = sheet.getDataValidationHelper();
numericConstraint = helper.createNumericConstraint(2, 0, "0", "2000000");
CellRangeAddressList regions = new CellRangeAddressList(1, 2000, 22, 25);
DataValidation dataValidation = helper.createValidation(numericConstraint, regions);
if (dataValidation instanceof XSSFDataValidation) {
dataValidation.setSuppressDropDownArrow(true);
dataValidation.setShowErrorBox(true);
} else {
dataValidation.setSuppressDropDownArrow(false);
}
sheet.addValidationData(dataValidation);
}
int i;
if (columnHidden != null) {
for(i = 0; i < columnHidden.length; ++i) {
sheet.setColumnHidden(columnHidden[i], true);
}
}
if (columnLength != null) {
for(i = 0; i < columnLength.length; ++i) {
sheet.setColumnWidth(i, columnLength[i]);
}
}
Row row = sheet.createRow(0);
for(int i = 0; titles != null && i < titles.length; ++i) {
Cell cell = row.createCell(i);
cell.setCellValue(titles[i]);
cell.setCellStyle(cellStyleTitle);
}
CellStyle cellStyleBody = workbook.createCellStyle();
cellStyleBody.cloneStyleFrom(cellStyleTitle);
Font fontBody = workbook.createFont();
fontBody.setFontName("宋体");
fontBody.setFontHeightInPoints((short)10);
cellStyleBody.setFont(fontBody);
return workbook;
}
public static void writeExceleByPOI(SXSSFWorkbook sxssfWorkbook, OutputStream out) {
try {
sxssfWorkbook.write(out);
out.flush();
} catch (IOException var11) {
log.error("系统异常:", var11);
} finally {
try {
if (out != null) {
out.close();
}
sxssfWorkbook.dispose();
} catch (IOException var10) {
log.error("系统异常:", var10);
}
}
}
}
然后导出即可
相关依赖
<!--easypoi-->
<dependency>
<groupId>cn.afterturn</groupId>
<artifactId>easypoi-base</artifactId>
<version>4.1.0</version>
</dependency>
<dependency>
<groupId>cn.afterturn</groupId>
<artifactId>easypoi-web</artifactId>
<version>4.1.0</version>
</dependency>
<dependency>
<groupId>cn.afterturn</groupId>
<artifactId>easypoi-annotation</artifactId>
<version>4.1.0</version>
</dependency>
<!-- poi4.1.0 -->
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
<version>4.1.0</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>4.1.0</version>
</dependency>
<!-- 使用模板excel导出功能 -->
<dependency>
<groupId>org.jxls</groupId>
<artifactId>jxls</artifactId>
<version>2.8.1</version>
</dependency>
<dependency>
<groupId>org.jxls</groupId>
<artifactId>jxls-poi</artifactId>
<version>1.0.12</version>
</dependency>
<dependency>
<groupId>org.jxls</groupId>
<artifactId>jxls-jexcel</artifactId>
<version>1.0.9</version>
</dependency>
<!-- 大数据excel导出功能 -->
<dependency>
<groupId>antlr</groupId>
<artifactId>antlr</artifactId>
<version>2.7.7</version>
</dependency>
<dependency>
<groupId>org.antlr</groupId>
<artifactId>stringtemplate</artifactId>
<version>3.2.1</version>
</dependency>
<!--pdf生成工具类-->
<dependency>
<groupId>com.itextpdf</groupId>
<artifactId>itextpdf</artifactId>
<version>5.4.2</version>
</dependency>
<dependency>
<groupId>com.itextpdf.tool</groupId>
<artifactId>xmlworker</artifactId>
<version>5.4.1</version>
</dependency>
<dependency>
<groupId>com.itextpdf</groupId>
<artifactId>itext-asian</artifactId>
<version>5.2.0</version>
</dependency>
<dependency>
<groupId>org.xhtmlrenderer</groupId>
<artifactId>flying-saucer-pdf</artifactId>
<version>9.0.3</version>
</dependency>