layui框架怎么導出excel表格建站文章
導讀:建站文章建站文章前言:由于工作需要,需要使用到導出excel表格功能,后臺管理使用的是">
前言:
由于工作需要,需要使用到導出excel表格功能,后臺管理使用的是layui框架。
(學習視頻分享:編程入門)
看layui的官網社區論壇,很多人都說layui自帶的導出功能,只能導出當前頁面的數據。而且,部分的數據都是通過數據之間關聯表查詢出來的,用layui自帶的導出數據會顯示(Object),讓人很頭疼。
所以要用到插件,很簡單,下面的網址,把文件下載。
這個是插件必須用到的文件,注意引入文件的路徑。
在這里給大家提供一個網址,可以來這下載,里面也有教程:https://github.com/wangerzi/layui-excel
給大家看下項目后臺: 就比如訂單號,就是從關聯的訂單表中查詢的
直接上代碼:
jsp:
這是一個導出的操作按鈕:
<button type="button" lay-submit="" class="layui-btn layui-btn-warm" lay-filter="uploadImg"> <i class="layui-icon"></i>導出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' //頁碼的參數名稱,默認: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<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) { //查詢所有數據 mList = sellDealService.getListExcel(paramsMap); for (SellDealEntity sellDealEntity : mList) { //自定義一個新實體類,定義好要導出來的字段,把遍歷出來的數據存放到一個新的list,因為會出現關聯表的數據 SellDealExcelEntity sellDeal = new SellDealExcelEntity(); sellDeal.setSdId(sellDealEntity.getSdId()); sellDeal.setShopName(sellDealEnti網站建設ty.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: 網站推廣優化seo 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"); } }聲明: 本文由我的SEOUC技術文章主頁發布于:2023-05-27 ,文章layui框架怎么導出excel表格建站文章主要講述表格,框架,建站網站建設源碼以及服務器配置搭建相關技術文章。轉載請保留鏈接: http://www.bifwcx.com/article/web_11301.html