首页 > 作文

postman导出excel文件(postman批量发送请求)

更新时间:2023-04-05 06:11:47 阅读: 评论:0

poi 工具类,excel的快速导入导出,excel模板导出,word模板导出,可以仅仅5行代码就可以完成excel的导入导出,修改导出格式简单粗暴,快速有效,easypoi值得你尝试

目前来说,easypoi确实方便,官网也提供了三种不同的版本,它在开源中国还,还是非常出名的,用的人非常多,也是对他的一个认可。

www.887551.com目前的项目,也是用这个来做,今天我们来做个excel的导入导出例子,看看怎么使用?

包体引入

目前官方提供最新版本是4.2.0,但是我在使用过程中,总是报错,时间关系就没怎么去查找,有兴趣的同学可以呀研究一下,类找不到,这个是apache的一个类,估计是新版本需要引入别的包,没去仔细追究。

java.lang.noclassdeffounderror: org/apache/poi/xssf/urmodel/xssfworkbook
        <!-- springboot核心web -->        <dependency>            <groupid>org.springframework.boot</groupid>            <artifactid>spring-boot-starter-web</artifactid>        </dependency>        <!-- 引入easypoi包 -->        <dependency>            <groupid>cn.afterturn</groupid>            <artifactid>easypoi-spring-boot-starter</artifactid>            <version>4.1.0</version>        </dependency>                <dependency>            <groupid>commons-fileupload</groupid>            <artifactid>commons-fileupload</artifactid>            <version>1.4</version>        </dependency>

编写导入导出工具类

/** * excel枚举类型 * @author:溪云阁 * @date:2020年5月29日 */public enum exceltypeenum {    xls("xls"), xlsx("xlsx");    private string value;    private exceltypeenum(string value) {        this.value = value;    }    public string getvalue() {        return value;    }    public void tvalue(string value) {        this.value = value;    }}
/** * excel导出工具类 * @author:溪云阁 * @date:2020年5月29日 */@componentpublic class excelexportutils {    @autowired    private httprvletrespon respon;    /**     * 导出excel     * @author 溪云阁     * @param list 泛型数据     * @param title 标题     * @param sheetname sheet的名称     * @param pojoclass 需要导出的对象     * @param filename 文件名称     * @param iscreateheader 是否创建表头     * @throws ioexception void     */    public void exportexcel(list<?> list, class<?> pojoclass, string title, string sheetname, string filename,            boolean iscreateheader) throws ioexception {        final exportparams exportparams = new exportparams(title, sheetname, exceltype.xssf);        exportparams.tcreateheadrows(iscreateheader);        baexport(list, pojoclass, filename, exportparams);    }    /**     * 导出excel     * @author 溪云阁     * @param list 泛型数据     * @param title 标题     * @param sheetname sheet的名称     * @param pojoclass 需要导出的对象     * @param filename 文件名称     * @param respon     * @throws ioexception void     */    public void exportexcel(list<?> list, class<?> pojoclass, string title, string sheetname, string filename)            throws ioexception {        baexport(list, pojoclass, filename, new exportparams(title, sheetname, exceltype.xssf));    }    /**     * 导出excel     * @author 溪云阁     * @param list 泛型数据     * @param pojoclass 需要导出的对象     * @param filename 文件名称     * @param exportparams 文件书香     * @param respon     * @throws ioexception void     */    public void exportexcel(list<?> list, class<?> pojoclass, string filename, exportparams exportparams)            throws ioexception {        baexport(list, pojoclass, filename, exportparams);    }    /**     * 多个sheet导出     * @author 溪云阁     * @param list     * @param filename     * @throws ioexception void     */    public void exportexcel(list<map<string, object>> list, string filename) throws ioexception {        baexport(list, filename);    }    /**     * 最基础的对象导出     * @author 溪云阁     * @param list 数据列表     * @param pojoclass 导出对象     * @param filename 文件名称     * @param exportparams 导出文件属性     * @throws ioexception void     */    private void baexport(list<?> list, class<?> pojoclass, string filename, exportparams exportparams)            throws ioexception {        final workbook workbook = excelexportutil.exportexcel(exportparams, pojoclass, list);        downloadexcel(filename, workbook);    }    /**     * 最基础的多sheet导出     * @author 溪云阁     * @param list 多个不同数据对象的列表     * @param filename 文件名称     * @throws ioexception void     */    private void baexport(list<map<string, object>> list, string filename) throws ioexception {        final workbook workbook = excelexportutil.exportexcel(list, exceltype.hssf);        downloadexcel(filename, workbook);    }    /**     * 文件下载     * @author 溪云阁     * @param filename 文件名称     * @param workbook exce对象     * @throws ioexception void     */    private void downloadexcel(string filename, workbook workbook) throws ioexception {        rvletoutputstream output = null;        try {            final string downloadname = urlencoder.encode(filename + "." + exceltypeenum.xlsx.getvalue(), "utf-8");            respon.tchara因果联想cterencoding("utf-8");            respon.theader("content-type", "application/vnd.ms-excel");            respon.theader("content-disposition", "attachment;filename=" + downloadname);            output = respon.getoutputstream();            workbook.write(output);        }        catch (final exception e) {            throw new ioexception(e.getmessage());        }        finally {            if (output != null) {                output.flush();                output.clo();            }        }    }}
/** * excel导入工具类 * @author:溪云阁 * @date:2020年5月29日 */@componentpublic class excelimportutils {    /**     * 从指定位置获取文件后进行导入     * @author 溪云阁     * @param filepath 文件路径     * @param titlerows 表格标题行数,默认0     * @param headerrows 表头行数,默认1     * @param pojoclass 上传后需要转化的对象     * @return     * @throws ioexception list<t>     */    public <t> list<t> importexcel(string filepath, integer titlerows, integer 跳房子headerrows, class<t> pojoclass)            throws exception {        if (strings.impty(filepath)) {            return null;        } el {            final importparams params = new importparams();            // 表格标题行数,默认0            params.ttitlerows(titlerows);            // 表头行数,默认1            params.theadrows(headerrows);            // 是否需要保存上传的excel            params.tneedsave(true);            // 保存上传的excel目录            params.tsaveurl("/excel/");            return excelimportutil.importexcel(new file(filepath), pojoclass, params);        }    }    /**     * 上传文件导入     * @author 溪云阁     * @param file     * @param titlerows 标题行     * @param headerrows 表头行     * @param needverfiy 是否检验excel内容     * @param pojoclass 导入的对象     * @return     * @throws exception list<t>     */    public <t> list<t> importexcel(multipartfile file, integer titlerows, integ舞龙舞狮表演er headerrows, boolean needverfiy,            class<t> pojoclass) throws exception {        if (file == null) {            return null;        } el {            return baimport(file.getinputstream(), titlerows, headerrows, needverfiy, pojoclass);        }    }    /**     * 最基础导入     * @author 溪云阁     * @param inputstream     * @param titlerows 表格标题行数,默认0     * @param headerrows 表头行数,默认1     * @param needverify 是否需要检测excel     * @param pojoclass 导入的对象     * @return     * @throws ioexception list<t>     */    private <t> list<t> baimport(inputstream inputstream, integer titlerows, integer headerrows,            boolean needverify, class<t> pojoclass) throws exception {        if (inputstream == null) {            return null;        } el {            final importparams params = new importparams();            params.ttitlerows(titlerows);            params.theadrows(headerrows);            par亚寒带ams.tsaveurl("/excel/");            params.tneedsave(true);            params.tneedverify(needverify);            return excelimportutil.importexcel(inputstream, pojoclass, params);        }    }}

编写导入导出对象

这里,为了覆盖更全一点,我分别用了不同的类型来做实验,数字类型采用numberformat进行格式化操作。

/** * 用户信息 * @author:溪云阁 * @date:2020年5月29日 */public class ur implements rializable {    // 数字格式化    private numberformat nf = numberformat.getnumberinstance();    private static final long rialversionuid = 1l;    @excel(name = "用户id", ordernum = "0", width = 15)    @tter    @getter    private long urid;    @excel(name = "性别", ordernum = "1", width = 15, replace = { "男_1", "女_2" }, suffix = "孩")    @tter    @getter    private int x;    @excel(name = "金钱", ordernum = "2", width = 15)    @tter    private double money;    public string getmoney() {        return nf.format(money);    }    @excel(name = "用户信息", ordernum = "3", width = 15)    @tter    @getter    private string urname;    @excel(name = "价格", ordernum = "4", width = 15)    @tter    @getter    private float price;    @excel(name = "时间", ordernum = "5", width = 15, format = "yyyy-mm-dd")    @tter    @getter    private date now;}

编写测试方法

/** * excel导入导出 * @author:溪云阁 * @date:2020自从遇见你 吕雯年5月29日 */@api(tags = { "app服务:数据接口" })@restcontroller@requestmapping("view/ie")public class importexportcontroller {    @autowired    private excelexportutils excelexportutils;    @autowired    private excelimportutils excelimportutils;    /**     * 导出用户信息     * @author 溪云阁 void     */    @apioperation(value = "导出excel")    @getmapping(value = "/exportexcel")    public void exportexcel() throws exception {        final list<ur> urlist = new arraylist<>();        for (int i = 0; i < 10; i++) {            final ur ur = new ur();            ur.turid(i);            ur.tx(1);            ur.tmoney(12332123 + i);            ur.turname("小明" + i);            ur.tprice(23.1f + i);            ur.tnow(new date());            urlist.add(ur);        }        excelexportutils.exportexcel(urlist, ur.class, "用户信息", "员工信息的sheet", "用户信息表");    }    /**     * 导入用户信息     * @author 溪云阁     * @param file     * @return     * @throws ioexception object     */    @apioperation(value = "导入excel")    @getmapping(value = "/importexcel")    public responmsg<list<ur>> importexcel(@requestparam("file") multipartfile file) throws exception {        final list<ur> urlist = excelimportutils.importexcel(file, 1, 1, fal, ur.class);        return msgutils.buildsuccessmsg(urlist);    }}

导出结果

在导出中,直接在浏览器输入地址接口,结果如截图所示

其中,金钱,时间上,我们分别进行了格式化

导入结果

把刚刚导出来的文件,直接导入进去,这里采用postman进行操作,其中要注意的点,我已经用红色的圈圈标出来。

从实验结果上看,已经可以导入进去,并且把数据返回来

问题

在导入进去的构成中,这里留下一个问题给同学自行解决,导入的金额是0,可自行研究解决

本文发布于:2023-04-05 06:11:46,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/zuowen/ea96e1d29e6db496b4134664d6ba6697.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

本文word下载地址:postman导出excel文件(postman批量发送请求).doc

本文 PDF 下载地址:postman导出excel文件(postman批量发送请求).pdf

下一篇:返回列表
相关文章
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图