欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  新闻

postman测试导出excel(postman测试导出excel教学)

程序员文章站 2022-06-14 21:59:29
我们采用的hutool的工具类,对实体类和map进行的excel导出操作,更加详细地说明,请参考:https://hutool.cn/docs/#/首先创建一个实体类:@data // 实现了:1、所...

我们采用的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进行调用

postman测试导出excel(postman测试导出excel教学)

然后生成的excel如下:

postman测试导出excel(postman测试导出excel教学)
postman测试导出excel(postman测试导出excel教学)