layui框架如何導(dǎo)出excel表格-創(chuàng)新互聯(lián)

這篇文章主要介紹了layui框架如何導(dǎo)出excel表格,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。

公司主營業(yè)務(wù):網(wǎng)站設(shè)計、網(wǎng)站建設(shè)、移動網(wǎng)站開發(fā)等業(yè)務(wù)。幫助企業(yè)客戶真正實現(xiàn)互聯(lián)網(wǎng)宣傳,提高企業(yè)的競爭能力。創(chuàng)新互聯(lián)建站是一支青春激揚、勤奮敬業(yè)、活力青春激揚、勤奮敬業(yè)、活力澎湃、和諧高效的團隊。公司秉承以“開放、自由、嚴謹、自律”為核心的企業(yè)文化,感謝他們對我們的高要求,感謝他們從不同領(lǐng)域給我們帶來的挑戰(zhàn),讓我們激情的團隊有機會用頭腦與智慧不斷的給客戶帶來驚喜。創(chuàng)新互聯(lián)建站推出西夏免費做網(wǎng)站回饋大家。

前言:

由于工作需要,需要使用到導(dǎo)出excel表格功能,后臺管理使用的是layui框架。


看layui的官網(wǎng)社區(qū)論壇,很多人都說layui自帶的導(dǎo)出功能,只能導(dǎo)出當前頁面的數(shù)據(jù)。而且,部分的數(shù)據(jù)都是通過數(shù)據(jù)之間關(guān)聯(lián)表查詢出來的,用layui自帶的導(dǎo)出數(shù)據(jù)會顯示(Object),讓人很頭疼。

所以要用到插件,很簡單,下面的網(wǎng)址,把文件下載。

這個是插件必須用到的文件,注意引入文件的路徑。

layui框架如何導(dǎo)出excel表格

給大家看下項目后臺: 就比如訂單號,就是從關(guān)聯(lián)的訂單表中查詢的

layui框架如何導(dǎo)出excel表格

直接上代碼:

jsp:

這是一個導(dǎo)出的操作按鈕:

<button type="button" lay-submit="" class="layui-btn layui-btn-warm" lay-filter="uploadImg">
    <i class="layui-icon"></i>導(dǎo)出Excel</button>


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' //頁碼的參數(shù)名稱,默認:page
            , limitName: 'limit' //每頁數(shù)據(jù)量的參數(shù)名,默認: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 是需要導(dǎo)出的列表數(shù)據(jù)
                console.log(res.data);//
                // 1. 數(shù)組頭部新增表頭
                res.data.unshift({sdId: 'ID',sdMoney: '交易金額',sdTime:'交易時間',type:'交易類型',sdWater:'交易流水編號',order:'訂單號'});
                // 3. 執(zhí)行導(dǎo)出函數(shù),系統(tǒng)會彈出彈框
                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<String, Object> paramsMap = JSONObject.parseObject(request.getParameter("datas"), Map.class);
        if (paramsMap == null) {
            paramsMap = new HashMap<String, Object>();
        }

        Map<String, Object> map = new HashMap<String, Object>();

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

            List<SellDealExcelEntity> list = new ArrayList<>();
            if (count > 0) {
                //查詢所有數(shù)據(jù)
                mList = sellDealService.getListExcel(paramsMap);
                for (SellDealEntity sellDealEntity : mList) {
                    //自定義一個新實體類,定義好要導(dǎo)出來的字段,把遍歷出來的數(shù)據(jù)存放到一個新的list,因為會出現(xiàn)關(guān)聯(lián)表的數(shù)據(jù)
                    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());
                    //根據(jù)類型 set 對應(yīng)的值
                    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", "導(dǎo)出成功");
            map.put("count", count);
            map.put("data", list);
        }catch (Exception e){
            map.put("code", 1);
            map.put("msg", "導(dǎo)出失敗,請稍后重試!");
        }


        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("余額提現(xiàn)");
                sellDeal.setSdMoney("-"+sellDealEntity.getSdMoney().toString());
                break;
            case 6:
                sellDeal.setType("保證金提現(xiàn)");
                sellDeal.setSdMoney("-"+sellDealEntity.getSdMoney().toString());
                break;
            case 7:
                sellDeal.setType("保證金提現(xiàn)手續(xù)費");
                sellDeal.setSdMoney("+"+sellDealEntity.getSdMoney().toString());
                break;
            case 8:
                sellDeal.setType("余額提現(xiàn)手續(xù)費");
                sellDeal.setSdMoney("+"+sellDealEntity.getSdMoney().toString());
                break;
            case 9:
                sellDeal.setType("訂單服務(wù)費");
                sellDeal.setSdMoney("+"+sellDealEntity.getSdMoney().toString());
                break;
            default:
                sellDeal.setType("暫無類型");
                sellDeal.setSdMoney("0");
        }
    }

最后,介意大家,定義新的實體時,好都是定義成字符串的類型,比較好處理。


感謝你能夠認真閱讀完這篇文章,希望小編分享的“l(fā)ayui框架如何導(dǎo)出excel表格”這篇文章對大家有幫助,同時也希望大家多多支持創(chuàng)新互聯(lián)網(wǎng)站建設(shè)公司,,關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,更多相關(guān)知識等著你來學(xué)習(xí)!

網(wǎng)頁名稱:layui框架如何導(dǎo)出excel表格-創(chuàng)新互聯(lián)
本文路徑:http://muchs.cn/article30/dieipo.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供定制開發(fā)、網(wǎng)站建設(shè)電子商務(wù)、網(wǎng)站制作、用戶體驗商城網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

商城網(wǎng)站建設(shè)