做Excel导出

数据做Excel导出

  1. 定义一个注解
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();
}
  1. 在需要导出实体的属性上,添加该注解 类似以下这种
	/**
	 * 序号
	 */
	@ExcelExport(name="序号",order=1)
	private String id;
	/**
	 * 会议名称
	 */
	@ExcelExport(name="名称",order=2)
	private String name;
	/**
	 * 会议类型
	 */
	@ExcelExport(name="会议类型",order=3)
	private String conferenceType;
	...
  1. 在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";
    }

猜你喜欢

转载自blog.csdn.net/weixin_44974020/article/details/105680708