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进行调用
然后生成的excel如下: