easypoi按模板多sheet导出

一.pom依赖导入

        <dependency>
			<groupId>cn.afterturn</groupId>
			<artifactId>easypoi-spring-boot-starter</artifactId>
			<version>4.0.0</version>
		</dependency>

二.模板设置

1.在项目创建excel目录

2.配置模板(dataList,dataList2分别为导出的数据集合,名字必须一致;fe表示循环插入,t为集合元素对象,‘{ {’开始,‘}}’结束)

 sheet1

 sheet2三.代码实现

1.设置实体DataEntity(Data2Entity类似)

@Data
public class DataEntity implements Serializable {

	private static final long serialVersionUID = 1L;
	
	private String id;
	
	private String data1;

	private String data2;

	private String data3;

	private String data4;
	private String data5;

	private String data6;

	private String data7;

	private String data8;
	private String data9;

	private String data10;

	private String data11;

	private String data12;
	private String data13;
}

2.获取dataList(dataList2类似)

public List<DataEntity> getDataList(Map<String, Object> param) {
			return  testDataServiceImpl.getDataList(param);
	}

3.导出

public void exportDataExcel(Map<String, Object> param, HttpServletRequest request, HttpServletResponse response) {
		try {
			String fileName = "test";
			String fileUrl = System.getProperty("user.dir") + "/excel/test.xlsx";
			TemplateExportParams params = new TemplateExportParams(fileUrl, true);
			params.setStyle(ExcelStyleType.BORDER.getClazz());
			params.setSheetNum(5);
			Map<String, Object> map = new HashMap<String, Object>();
			map.put("dataList", getDataList(param));
			map.put("dataList2", getData2List(param));
			Workbook book = ExcelExportUtil.exportExcel(params, map);
			// 下载方法
			export(response, book, fileName);
		} catch (Exception e) {
			throw new RuntimeException("导出异常");
		}
	}
 public void export(HttpServletResponse response, Workbook workbook, String fileName) throws Exception {
    	try {
			response.setHeader("Access-Control-Allow-Origin", "*");
			response.setCharacterEncoding("UTF-8");
			response.setHeader("content-Type", "application/vnd.ms-excel");
			response.setHeader("Content-Disposition",
					"attachment;filename=" + URLEncoder.encode(fileName + ".xlsx", "UTF-8"));
			OutputStream output = response.getOutputStream();
			workbook.write(output);
			output.flush();
			workbook.close();
			output.close();
		} catch (Exception e) {
			throw new IOException(e.getMessage());
		}

    }

猜你喜欢

转载自blog.csdn.net/yiye2017zhangmu/article/details/124625498