如题,使用easyExcel简单的导出一下数据,代码如下:
首先在pom.xml里面引入如下依赖:
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>easyexcel</artifactId>
<version>2.2.6</version>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.16.20</version>
</dependency>
controller层代码:
@RestController
@RequestMapping("/export")
public class ExportTestController {
private static Logger log= LoggerFactory.getLogger(ExportTestController.class);
@RequestMapping("/hello")
public String hello(){
return "hello world!";
}
@Autowired
private ExcelTestService excelTestService;
/**
* 史上最简单的数据数据导出demo
* 开箱即会
*/
@RequestMapping("/exporttest")
public void exporttest(HttpServletResponse response){
excelTestService.export(response);
}
}
service层代码:
import com.alibaba.excel.ExcelWriter;
import com.alibaba.excel.metadata.Sheet;
import com.alibaba.excel.support.ExcelTypeEnum;
import com.hdd.exportTest.model.Users;
import com.hdd.exportTest.service.ExcelTestService;
import org.springframework.stereotype.Service;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServletResponse;
import java.util.ArrayList;
import java.util.List;
/**
* @ClassName ExcelTestServiceImpl
* @DesCription TODO
* @Author 584654
* @Date 2021/10/31 9:08
* @Version 1.0
* @PackageName com.hdd.exportTest.service.impl
**/
@Service
public class ExcelTestServiceImpl implements ExcelTestService {
public void export(HttpServletResponse response){
//需要导出的数据
List<Users> list=getUsersList();
try {
ServletOutputStream out = response.getOutputStream();
ExcelWriter writer = new ExcelWriter(out, ExcelTypeEnum.XLSX, true);
String fileName = new String("用户信息表格"
.getBytes("utf-8"), "iso8859-1");
Sheet sheet1 = new Sheet(1, 0, Users.class);
sheet1.setSheetName("sheet1");
response.setHeader("Content-disposition", "attachment;filename="+fileName+".xlsx");
response.setContentType("multipart/form-data");
response.setCharacterEncoding("utf-8");
writer.write(list, sheet1);
writer.finish();
out.flush();
} catch (Exception e) {
e.printStackTrace();
}
}
private List<Users> getUsersList() {
List<Users> usersList=new ArrayList<Users>();
usersList.add(new Users("高俊也",28,"男"));
usersList.add(new Users("李雪琴",25,"女"));
return usersList;
}
}
model层代码:
import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.metadata.BaseRowModel;
import lombok.Data;
import java.io.Serializable;
/**
* @ClassName Users
* @DesCription TODO
* @Author 584654
* @Date 2021/10/31 9:13
* @Version 1.0
* @PackageName com.hdd.exportTest.model
**/
@Data
public class Users extends BaseRowModel implements Serializable {
private static final long serialVersionUID = 15353L;
@ExcelProperty(value = "姓名",index = 0)
private String name;
@ExcelProperty(value = "年龄",index = 1)
private Integer age;
@ExcelProperty(value = "性别",index = 2)
private String sex;
public Users(String name, Integer age, String sex) {
this.name = name;
this.age = age;
this.sex = sex;
}
}
启动项目后导出数据结果如下: