导出excel 设置指定列单元格格式
@GetMapping("/export")
public void exportExcel(HttpServletResponse response) throws Exception {
XSSFWorkbook workbook = new XSSFWorkbook();
XSSFSheet sheet = workbook.createSheet("Sheet1");
CellStyle textStyle = workbook.createCellStyle();
DataFormat format = workbook.createDataFormat();
textStyle.setDataFormat(format.getFormat("@"));
XSSFRow header = sheet.createRow(0);
Cell cell = header.createCell(0);
cell.setCellValue("姓名");
cell.setCellStyle(textStyle);
header.createCell(1).setCellValue("年龄");
header.createCell(2).setCellValue("性别");
List<User> users = getUserList();
int rowIndex = 1;
for (User user : users) {
XSSFRow row = sheet.createRow(rowIndex++);
Cell nameCell = row.createCell(0);
nameCell.setCellValue(user.getName());
nameCell.setCellStyle(textStyle);
row.createCell(1).setCellValue(user.getAge());
row.createCell(2).setCellValue(user.getGender());
}
sheet.setDefaultColumnStyle(0, textStyle);
response.setContentType("application/vnd.ms-excel");
response.setHeader("Content-Disposition", "attachment; filename=users.xlsx");
ServletOutputStream outputStream = response.getOutputStream();
workbook.write(outputStream);
outputStream.flush();
outputStream.close();
}
private List<User> getUserList() {
List<User> users = new ArrayList<>();
users.add(new User("张三", 25, "男"));
users.add(new User("李四", 30, "女"));
users.add(new User("王五", 28, "男"));
return users;
}
public class User {
private String name;
private int age;
private String gender;
public User(String name, int age, String gender) {
this.name = name;
this.age = age;
this.gender = gender;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getGender() {
return gender;
}
public void setGender(String gender) {
this.gender = gender;
}