1.首先导入相应依赖
<!-- easypoi简单导出所需要的jar包 start -->
<dependency>
<groupId>cn.afterturn</groupId>
<artifactId>easypoi-base</artifactId>
<version>3.2.0</version>
</dependency>
<dependency>
<groupId>cn.afterturn</groupId>
<artifactId>easypoi-web</artifactId>
<version>3.2.0</version>
</dependency>
<dependency>
<groupId>cn.afterturn</groupId>
<artifactId>easypoi-annotation</artifactId>
<version>3.2.0</version>
</dependency>
<!-- easypoi简单导出所需要的jar包 end-->
2.然后工具类
public class ExcelUtil {
public static void writeExcel(HttpServletResponse response, List<?> list, String fileName, String sheetName, Class clazz)throws Exception{
response.setCharacterEncoding("UTF-8");
response.setHeader("content-Type", "application/vnd.ms-excel");
response.setHeader("Access-Control-Expose-Headers", "Content-Disposition");
response.setHeader("Content-Disposition","attachment;filename="+URLEncoder.encode(fileName, "UTF-8"));
// 创建参数对象(用来设定excel得sheet的内容等信息)
ExportParams params = new ExportParams(); //sheet
// title的参数为ExportParams类型,目前仅仅在ExportParams中设置了sheetName
params.setSheetName(sheetName);
params.setType(ExcelType.XSSF);
Workbook workbook = ExcelExportUtil.exportExcel(params, clazz,list) ;
workbook.write(response.getOutputStream());
}
3.导出对应的实体类
import cn.afterturn.easypoi.excel.annotation.Excel;
import lombok.Data;
/**
* @author author
* @date 2021/8/23 20:47
*/
@Data
public class MentorDiseaseExport {
@Excel(name = "就诊流水号")
private String flowNo;
@Excel(name = "姓名")
private String patientName;
@Excel(name = "年龄")
private String patientAge;
private String patientBirth;
@Excel(name = "性别")
private String patientSex;
@Excel(name = "身份证号")
private String idenno;
@Excel(name = "医保类型")
private String pactName;
@Excel(name = "疾病名称")
private String diagName;
@Excel(name = "科室")
private String deptName;
@Excel(name = "医生")
private String doctName;
@Excel(name = "总费用(元)")
private String totalCost;
@Excel(name = "医保费用(元)")
private String pubCost;
@Excel(name = "公务员补助(元)")
private String officeCost;
@Excel(name = "就诊日期")
private String mtbDate;
}
// 如果不用注解该字段不会导出
4.导出controller
@PostMapping("/queryDiseaseByPage/export")
@ResponseBody
public void queryDetailExport(ChronicDiseaseDTO chronicDisDTO, HttpServletResponse response) {
List<MentorDiseaseExport> mapData = chronicService.queryDiseaseByPageExport(chronicDisDTO);
String ymdhms = new SimpleDateFormat("yyyyMMddHHmmss").format(new Date());
String excelName = "门诊慢性病详情" + ymdhms + ".xlsx";
try {
ExcelUtil.writeExcel(response, mapData, excelName, "门诊慢性病详情", MentorDiseaseExport.class);
} catch (Exception e) {
log.info(e.getMessage());
e.printStackTrace();
}
}
查询数据的业务和xml就不贴了,传统的poi需要写的比较多的代码,还可以通过easyExcel导出,也是比较简单的方法。