之前在博客中写了使用 FileSaver.js对文件进行读写,这次分享的是 使用FileSaver实现前端导出页面数据到excel
首先引入fileSave.js
import '~/lib/file-saver/dist/FileSaver.min.js';
html: <table class="table tb report-table-wrapper refresh" id="exportable"> <thead> <tr class="tb-head fix-top-two tr-nowrap"> <th class="text-center">区域编号</th> <th class="text-center ">区域名称</th> <th class="text-center">分店编号</th> <th class="text-center">分店名称</th> <th class="text-center">现金</th> <th class="text-center">银行卡</th> <th class="text-center">微信</th> <th class="text-center">支付宝</th> <th class="text-center">会员(储值)</th> <th class="text-center">会员(券)</th> <th class="text-center">美团外卖支付</th> <!--<th class="text-center">优惠券支付</th>--> <th class="text-center">美团支付</th> <th class="text-center">银行积分兑换</th> <th class="text-center">挂账</th> <th class="text-center">合计</th> <!--<th class="text-center">操作</th>--> </tr> </thead> <tbody ng-if="!$ctrl.isRenderTableContent"><tr></tr></tbody> <tbody ng-if="$ctrl.isRenderTableContent"> <tr class="tb-body tr-nowrap" ng-repeat="item in $ctrl.dataList1"> <td class="text-center" >{{item.areaId}}</td> <td class="text-center">{{item.areaName}}</td> <td class="text-center" >{{item.shopId}}</td> <td class="text-center">{{item.shopName}}</td> <td class="text-center">{{item.xj}}</td> <td class="text-center">{{item.yhk}}</td> <td class="text-center">{{item.wx}}</td> <td class="text-center">{{item.zfb}}</td> <td class="text-center">{{item.hycz}}</td> <td class="text-center">{{item.hyq}}</td> <td class="text-center">{{item.mtwmzf}}</td> <!--<td class="text-center">{{item.yhqzf}}</td>--> <td class="text-center">{{item.mtzf}}</td> <td class="text-center">{{item.yhjfdh}}</td> <td class="text-center">{{item.gz}}</td> <td class="text-center">{{item.hj}}</td> </tr> </tbody> </table>
js: var blob = new Blob([document.getElementById('exportable').innerText], {//通过id来exportable获取所有子节点下面得文字
type: "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=utf-8" }); //文件类型 saveAs(blob, "按收银员汇总.xls");//使用saveAs保存数据到excel