postman測試導出excel教學:postman測試導出excel

我們採用的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進行調用

Java之Excel的導出功能(多sheet場景)

然後生成的excel如下:

Java之Excel的導出功能(多sheet場景)
Java之Excel的導出功能(多sheet場景)

原創文章,作者:投稿專員,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/222799.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
投稿專員的頭像投稿專員
上一篇 2024-12-09 14:12
下一篇 2024-12-09 14:12

相關推薦

發表回復

登錄後才能評論