我們採用的hutool的工具類,對實體類和map進行的excel導出操作,更加詳細地說明,請參考:
https://hutool.cn/docs/#/
首先創建一個實體類:
@Data // 實現了:1、所有屬性的get和set方法;2、toString 方法;3、hashCode方法;4、equals方法
@Builder // 建造者模式
@NoArgsConstructor // 無參構造函數
@AllArgsConstructor // 有參構造函數
public class UserInfo {
private String name;
private Integer age;
private String idCard;
private String gender;
private String birthday;
}然後,我們以介面的形式進行調用
@RestController
@RequestMapping(value = "/excel")
public class TestExcel {
@GetMapping(value = "/export")
public void excelExport(HttpServletResponse response) {
// 以map的方式
Map<String, Object> row1 = new LinkedHashMap<>();
row1.put("姓名", "蘋果");
row1.put("顏色", "紅/黃/綠");
row1.put("口感", "酸甜");
row1.put("產地", "全國");
Map<String, Object> row2 = new LinkedHashMap<>();
row2.put("姓名", "香蕉");
row2.put("顏色", "黃");
row2.put("口感", "甜");
row2.put("產地", "南方");
ArrayList<Map<String, Object>> rows_1 = CollUtil.newArrayList(row1,row2);
UserInfo userInfo = new UserInfo();
userInfo.setName("張三");
userInfo.setAge(10);
userInfo.setGender("男");
userInfo.setIdCard("3013");
List<UserInfo> rows_2 = new ArrayList<>();
rows_2.add(userInfo);
// 通過工具類創建writer,默認創建xls格式
ExcelWriter writer = ExcelUtil.getWriter();
writer.setSheet("sheet1");
writer.merge(3, "水果信息");
// 一次性寫出內容,使用默認樣式,強制輸出標題
writer.write(rows_1, true);
writer.setSheet("sheet2");
writer.addHeaderAlias("name", "姓名");
writer.addHeaderAlias("age", "年齡");
writer.addHeaderAlias("idCard", "證件號");
writer.addHeaderAlias("gender", "性別");
writer.addHeaderAlias("birthday", "生日");
writer.merge(4, "人員信息");
writer.write(rows_2, true);
//response為HttpServletResponse對象
response.setContentType("application/vnd.ms-excel;charset=utf-8");
//test.xls是彈出下載對話框的文件名,不能為中文,中文請自行編碼
response.setHeader("Content-Disposition","attachment;filename=test.xls");
ServletOutputStream out = null;
try {
out = response.getOutputStream();
writer.flush(out, true);
} catch(Exception e) {
e.printStackTrace();
} finally {
// 關閉writer,釋放內存
writer.close();
//此處記得關閉輸出Servlet流
IoUtil.close(out);
}
}
}注意:我們第一個sheet用的map,第二個sheet用的實體類
接下來,我們使用postman進行調用

然後生成的excel如下:


原創文章,作者:投稿專員,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/222799.html
微信掃一掃
支付寶掃一掃