数据做Excel导出
- 定义一个注解
package net.dgg.conference.system.view;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
/**
* excel导出的时候给字段添加注解,自动设置中文名称,
* 排序指的是按照excel中字段从左到右的顺序排序,从1开始
*
* @Author: 骑猪撞地球QAQ
* @Date: 2020/3/25 14:57
* @Description:
*/
@Target(ElementType.FIELD)
@Retention(RetentionPolicy.RUNTIME)
public @interface ExcelExport {
/**
* 导出时在Excel上面显示的中文字段名称
*/
String name();
/**
* 导出时在Excel里面该字段的排序
*/
int order();
}
- 在需要导出实体的属性上,添加该注解 类似以下这种
/**
* 序号
*/
@ExcelExport(name="序号",order=1)
private String id;
/**
* 会议名称
*/
@ExcelExport(name="名称",order=2)
private String name;
/**
* 会议类型
*/
@ExcelExport(name="会议类型",order=3)
private String conferenceType;
...
- 在Controller层,使用ModelMap封装数据 类似于以下这种 即可完成excel导出
@ApiOperation(value="导出")
@RequestMapping(value = "/v1/conferenceAllExcel.do",method = RequestMethod.GET)
public String conferenceAllExcel(ModelMap modelMap, ConferenceAllReq req){
String date = DateUtil.dateToStr(DateUtil.now(),DateUtil.yyyyMMdd);
// 查询数据
List<ConferenceAllExcelRes> voRes = conferenceManageService.conferenceAllExcel(req, 1);
// 将数据给设置进模型
modelMap.put("datas", voRes);
// 设置导出的excel名字
modelMap.put("excelName", "conferenceAll_"+date);
// 设置导出的Excel后缀
modelMap.put("excelhz", "xls");
// 设置导出的Excel数据的Class
modelMap.put("class", ConferenceAllExcelRes.class);
// 设置每页excel显示多少数据
modelMap.put("rows",ext1);
return "toExcel";
}