0

0

layui框架怎么导出excel表格

王林

王林

发布时间:2021-01-29 11:13:48

|

9188人浏览过

|

来源于博客园

转载

layui框架怎么导出excel表格

前言:

由于工作需要,需要使用到导出excel表格功能,后台管理使用的是layui框架。

(学习视频分享:编程入门

看layui的官网社区论坛,很多人都说layui自带的导出功能,只能导出当前页面的数据。而且,部分的数据都是通过数据之间关联表查询出来的,用layui自带的导出数据会显示(Object),让人很头疼。

所以要用到插件,很简单,下面的网址,把文件下载。

这个是插件必须用到的文件,注意引入文件的路径。

fccbea69ab2427b023978085db8daac.png

在这里给大家提供一个网址,可以来这下载,里面也有教程:https://github.com/wangerzi/layui-excel

IBM Watson
IBM Watson

IBM Watson文字转语音

下载

给大家看下项目后台: 就比如订单号,就是从关联的订单表中查询的

a2f63ba23cba6e1c943900a9bd97968.png

直接上代码:

jsp:

这是一个导出的操作按钮:




layui.use(['layer', 'form', 'table', 'laydate','jquery'], function () {
    var $ = layui.jquery,
        layer = layui.layer,
        form = layui.form,
        laydate = layui.laydate,
        table = layui.table;

 
    // 加载框
    var loading;

    loading = layer.load(1, {shade: [0.3, '#fff']});

    var tableIns = table.render({
        elem: '#tableList',
        // cellMinWidth: 100,
        cols: [[
            {field: 'sdId', width: 60, title: 'ID', sort: true}
            , {field: 'sdMoney', width: 87,title: '交易金额',templet:'#cashDepositTpl'}
            , {field: 'sdTime', minWidth: 87, title: '交易时间'}
            , {field: 'sdType', width: 300,title: '交易类型', templet: '#sdTypeTpl'}
            , {field: 'sdWater', minWidth: 120, title: '交易流水编号'}
            , {field: 'orderFormEntity', minWidth: 68,title: '订单号', templet: '#orderFormTpl'}
        ]],
        url:'${WEB_URL}terraceZL/getList',
        page: true,
        even: false,
        height: 'full-90',
        request: {
            pageName: 'page' //页码的参数名称,默认:page
            , limitName: 'limit' //每页数据量的参数名,默认:limit
        },
        limit: 50,
        done: function (res, curr, count) {
            layer.close(loading);
        }
    });

   
  

    form.on('submit(uploadImg)', function(data){
        loading = layer.load(1, {shade: [0.3, '#fff']});
        var $ = layui.jquery;
        var excel = layui.excel;
        $.ajax({
            url: '${WEB_URL}sellDeal/getTreeList',
            dataType: 'json',
            data: {
                datas:JSON.stringify(data.field)
            },
            success: function(res) {
                layer.close(loading);
                layer.msg(res.msg);
                // 假如返回的 res.data 是需要导出的列表数据
                console.log(res.data);//
                // 1. 数组头部新增表头
                res.data.unshift({sdId: 'ID',sdMoney: '交易金额',sdTime:'交易时间',type:'交易类型',sdWater:'交易流水编号',order:'订单号'});
                // 3. 执行导出函数,系统会弹出弹框
                excel.exportExcel({
                    sheet1: res.data
                }, '平台流水.xlsx', 'xlsx');
            },
            error:function(res){
                layer.close(loading);
                layer.msg(res.msg);
            }
        });
    });
});

Controller:
@RequestMapping("/getList")
    @ResponseBody
    public Object getList(HttpServletRequest request, Model model) {

        model.addAttribute("WEB_URL", ServiceUrl.WEB_URL);
        model.addAttribute("WEB_NAME", ServiceUrl.WEB_NAME);

        Map paramsMap = JSONObject.parseObject(request.getParameter("datas"), Map.class);
        if (paramsMap == null) {
            paramsMap = new HashMap();
        }

        Map map = new HashMap();

        try {
            List mList = new ArrayList();
            Integer count = sellDealService.getCountZL(paramsMap);

            List list = new ArrayList<>();
            if (count > 0) {
                //查询所有数据
                mList = sellDealService.getListExcel(paramsMap);
                for (SellDealEntity sellDealEntity : mList) {
                    //自定义一个新实体类,定义好要导出来的字段,把遍历出来的数据存放到一个新的list,因为会出现关联表的数据
                    SellDealExcelEntity sellDeal = new SellDealExcelEntity();
                    sellDeal.setSdId(sellDealEntity.getSdId());
                    sellDeal.setShopName(sellDealEntity.getSellEntity().getShopName());
                    sellDeal.setSdTime(sellDealEntity.getSdTime());
                    //时间格式可能不对,备用
//                DateFormat format=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
//                String time = format.format(sellDealEntity.getSdTime());
                    //根据类型 set 对应的值
                    switchType(sellDealEntity,sellDeal);
                    sellDeal.setSdWater(sellDealEntity.getSdWater());
                    //判断如果订单是null,就set " - "
                    if (sellDealEntity.getOrderFormEntity()==null){
                        sellDeal.setOrder("-");
                    }else {
                        sellDeal.setOrder(sellDealEntity.getOrderFormEntity().getOfOrder());
                    }
                    list.add(sellDeal);
                }
            }

            map.put("code", 0);
            map.put("msg", "导出成功");
            map.put("count", count);
            map.put("data", list);
        }catch (Exception e){
            map.put("code", 1);
            map.put("msg", "导出失败,请稍后重试!");
        }


        return JSON.toJSON(map);
    }

    private void switchType(SellDealEntity sellDealEntity,SellDealExcelEntity sellDeal) {
        switch (sellDealEntity.getSdType()) {
            case 0:
                sellDeal.setType("订单收益");
                sellDeal.setSdMoney("+"+sellDealEntity.getSdMoney().toString());
                break;
            case 1:
                sellDeal.setType("售后退款");
                sellDeal.setSdMoney("-"+sellDealEntity.getSdMoney().toString());
                break;
            case 2:
                sellDeal.setType("缴纳保证金");
                sellDeal.setSdMoney("+"+sellDealEntity.getSdMoney().toString());
                break;
            case 3:
                sellDeal.setType("保证金充值");
                sellDeal.setSdMoney("+"+sellDealEntity.getSdMoney().toString());
                break;
            case 4:
                sellDeal.setType("保证金扣除");
                sellDeal.setSdMoney("-"+sellDealEntity.getSdMoney().toString());
                break;
            case 5:
                sellDeal.setType("余额提现");
                sellDeal.setSdMoney("-"+sellDealEntity.getSdMoney().toString());
                break;
            case 6:
                sellDeal.setType("保证金提现");
                sellDeal.setSdMoney("-"+sellDealEntity.getSdMoney().toString());
                break;
            case 7:
                sellDeal.setType("保证金提现手续费");
                sellDeal.setSdMoney("+"+sellDealEntity.getSdMoney().toString());
                break;
            case 8:
                sellDeal.setType("余额提现手续费");
                sellDeal.setSdMoney("+"+sellDealEntity.getSdMoney().toString());
                break;
            case 9:
                sellDeal.setType("订单服务费");
                sellDeal.setSdMoney("+"+sellDealEntity.getSdMoney().toString());
                break;
            default:
                sellDeal.setType("暂无类型");
                sellDeal.setSdMoney("0");
        }
    }

最后,介意大家,定义新的实体时,最好都是定义成字符串的类型,比较好处理。

相关推荐:layui框架

相关文章

WPS零基础入门到精通全套教程!
WPS零基础入门到精通全套教程!

全网最新最细最实用WPS零基础入门到精通全套教程!带你真正掌握WPS办公! 内含Excel基础操作、函数设计、数据透视表等

下载

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
js 字符串转数组
js 字符串转数组

js字符串转数组的方法:1、使用“split()”方法;2、使用“Array.from()”方法;3、使用for循环遍历;4、使用“Array.split()”方法。本专题为大家提供js字符串转数组的相关的文章、下载、课程内容,供大家免费下载体验。

278

2023.08.03

js截取字符串的方法
js截取字符串的方法

js截取字符串的方法有substring()方法、substr()方法、slice()方法、split()方法和slice()方法。本专题为大家提供字符串相关的文章、下载、课程内容,供大家免费下载体验。

212

2023.09.04

java基础知识汇总
java基础知识汇总

java基础知识有Java的历史和特点、Java的开发环境、Java的基本数据类型、变量和常量、运算符和表达式、控制语句、数组和字符串等等知识点。想要知道更多关于java基础知识的朋友,请阅读本专题下面的的有关文章,欢迎大家来php中文网学习。

1492

2023.10.24

字符串介绍
字符串介绍

字符串是一种数据类型,它可以是任何文本,包括字母、数字、符号等。字符串可以由不同的字符组成,例如空格、标点符号、数字等。在编程中,字符串通常用引号括起来,如单引号、双引号或反引号。想了解更多字符串的相关内容,可以阅读本专题下面的文章。

622

2023.11.24

java读取文件转成字符串的方法
java读取文件转成字符串的方法

Java8引入了新的文件I/O API,使用java.nio.file.Files类读取文件内容更加方便。对于较旧版本的Java,可以使用java.io.FileReader和java.io.BufferedReader来读取文件。在这些方法中,你需要将文件路径替换为你的实际文件路径,并且可能需要处理可能的IOException异常。想了解更多java的相关内容,可以阅读本专题下面的文章。

572

2024.03.22

php中定义字符串的方式
php中定义字符串的方式

php中定义字符串的方式:单引号;双引号;heredoc语法等等。想了解更多字符串的相关内容,可以阅读本专题下面的文章。

566

2024.04.29

go语言字符串相关教程
go语言字符串相关教程

本专题整合了go语言字符串相关教程,阅读专题下面的文章了解更多详细内容。

166

2025.07.29

c++字符串相关教程
c++字符串相关教程

本专题整合了c++字符串相关教程,阅读专题下面的文章了解更多详细内容。

82

2025.08.07

c++空格相关教程合集
c++空格相关教程合集

本专题整合了c++空格相关教程,阅读专题下面的文章了解更多详细内容。

0

2026.01.23

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
ThinkPHP配置开发与CMS后台实战
ThinkPHP配置开发与CMS后台实战

共87课时 | 8.6万人学习

第二十三期_综合实战
第二十三期_综合实战

共89课时 | 6.6万人学习

Layui 快速入门精讲
Layui 快速入门精讲

共5课时 | 1.4万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号