Java EasyExcel 导出
maven依赖<dependency><groupId>com.alibaba</groupId><artifactId>easyexcel</artifactId><version>2.2.7</version></dependency>Modelimport java.math.BigDecimal
·
maven依赖
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>easyexcel</artifactId>
<version>2.2.7</version>
</dependency>
Model
import java.math.BigDecimal;
import java.util.Date;
import com.alibaba.excel.annotation.ExcelIgnore;
import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.annotation.write.style.ColumnWidth;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
* @Description:
* @Auther: Wangtianming
* @Date: 2022/4/19 23:09
*/
@Data
@NoArgsConstructor
@AllArgsConstructor
public class StudentExcelDto {
@ExcelProperty(value = "序号",index = 0)
private Long id;
@ExcelProperty(value = "姓名",index = 1)
private String studentName;
@ExcelProperty(value = "班级",index = 2)
@ColumnWidth(20)
private String studentClass;
@ExcelProperty(value = "住址",index = 3)
private String address;
@ExcelProperty(value = "入学日期",index = 4)
@JsonFormat(pattern = "yyyy-MM-dd")
private Date admissionDate;
@ExcelProperty(value = "分数",index = 5)
private BigDecimal score;
@ExcelIgnore//导出忽略此字段
private int gender;
@ExcelProperty(value = "姓别",index = 6)
private String genderName;
}
Controller
import java.math.BigDecimal;
import java.net.URLEncoder;
import java.util.Date;
import java.util.List;
import javax.servlet.http.HttpServletResponse;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import com.alibaba.excel.EasyExcel;
import com.alibaba.excel.ExcelWriter;
import com.alibaba.excel.write.metadata.WriteSheet;
import com.gemantic.cnooc.model.StudentExcelDto;
import com.google.common.collect.Lists;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
/**
* @Auther: Wangtianming
* @Date: 2021/10/27 14:35
* @Description:
*/
@RestController
@RequestMapping(path = "/student")
@Slf4j
public class StudentExcelController {
@PostMapping(value = "exportExcel", headers = "Accept=application/octet-stream")
@ApiOperation(value = "导出excel", notes = "导出excel")
public void exportExcel(HttpServletResponse response) throws Exception {
List<StudentExcelDto> pageList = Lists.newArrayList();
StudentExcelDto a = new StudentExcelDto();
a.setId(1l);
a.setStudentName("小王");
a.setStudentClass("五年纪");
a.setAddress("北京小学");
a.setAdmissionDate(new Date());
a.setScore(new BigDecimal(100));
a.setGender(1);
pageList.add(a);
pageList.forEach(b -> {
if (a.getGender() == 1) {
a.setGenderName("男");
} else {
a.setGenderName("女");
}
});
// 导出Excel
response.setContentType("application/vnd.ms-excel");
response.setCharacterEncoding("utf-8");
String fileName = URLEncoder.encode("班级信息", "UTF-8").replaceAll("\\+", "%20");
response.setHeader("Content-disposition", "attachment;filename*=utf-8''" + fileName + ".xlsx");
ExcelWriter writer = EasyExcel.write(response.getOutputStream()).build();
WriteSheet sheet = EasyExcel.writerSheet(0, "sheet").head(StudentExcelDto.class).build();
writer.write(pageList, sheet);
writer.finish();
}
}
导出效果
更多推荐
所有评论(0)