前言
excel 导出
一、所需sdk
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>easyexcel</artifactId>
<version>3.0.5</version>
</dependency>
二、实体类
1.demo
代码如下(示例):
@Data
@AllArgsConstructor
@NoArgsConstructor
@TableName(value = "xx")
@ColumnWidth(20)
@HeadRowHeight(20)
@ContentRowHeight(20)
@HeadFontStyle(bold = BooleanEnum.FALSE)
@HeadStyle(horizontalAlignment = HorizontalAlignmentEnum.CENTER,verticalAlignment = VerticalAlignmentEnum.CENTER)
@ContentStyle(horizontalAlignment = HorizontalAlignmentEnum.CENTER,verticalAlignment = VerticalAlignmentEnum.CENTER)
@ContentFontStyle(bold = BooleanEnum.FALSE)
public class HBlood {
@TableId(value = "id", type = IdType.INPUT)
@ExcelIgnore
private Long id;
@TableField(value = "xx")
@ExcelProperty(value = "xx")
private Integer xx;
@TableField(value = "xx")
@ExcelProperty(value = "xx")
private Integer xx;
@TableField(value = "`name`")
@ExcelIgnore
private String name;
@TableField(value = "create_time")
@ExcelProperty(value = "日期")
private Date createTime;
}
2.前端具体调用
代码如下(示例):
//血压仪信息列表导出表格
@GetMapping("/test/excel")
public void exportExcel(String id, HttpServletResponse response) throws IOException {
//查询导出内容
List<Test> test= testService.getLists(id);
//导出名
String fileName = URLEncoder.encode("xx" + System.currentTimeMillis() + ".xlsx", "UTF-8");
// 注意 simpleWrite在数据量不大的情况下可以使用(5000以内,具体也要看实际情况),数据量大参照 重复多次写入
// JDK8+
// since: 3.0.0-beta1
// 这里 需要指定写用哪个class去写,然后写到第一个sheet,名字为模板 然后文件流会自动关闭
response.setContentType("text/html;charset=UTF-8");
response.setHeader("Content-Disposition","attachment;filename="+fileName);
EasyExcel.write(response.getOutputStream(),Test.class).sheet("xx").doWrite(test);
response.getOutputStream().close();
}
总结
excel 导出