angularJS导出数据到Excel

<button class="btn w-xs btn-success" ng-disabled="problemList.length == 0" ng-click="exportData()">导出</button>
<table class="table table-striped table-hover" id="tableExcel">
   <thead>
      <tr>
        <th>名称</th>
        <th>河段名称</th>
        <th>创建人</th>
        <th>问题类型</th>
        <th>来源</th>
        <th>问题状态</th>
        <th>创建时间</th>
        <th>操作</th>
      </tr>
      </thead>
      <tbody>
      <tr ng-repeat="list in problemList">
        <td ng-click="detailsShow(list.id,$event)">
          <a>{{ ::list.name }}</a>
        </td>
        <td>{{ ::list.reachName }}</td>
        <td>{{ ::list.creatorName }}</td>
        <td>
          <span ng-repeat="(k,v) in list.type">{{ ::v }}   </span>
        </td>
        <td>{{ ::list.sourceStr }}</td>
        <td>
          <label class="label" ng-class="list.status == 2?'label-warning':'label-success'">{{ ::list.statusStr
            }}</label>
        </td>
        <td>{{ (list.createDate) | date: "yyyy-MM-dd HH:mm" }}</td>
        <td></td>
      </tr>
  </tbody>
</table>
/** 
     * 导出问题列表为excel
    */
   $scope.exportData=function(){
    var data = angular.copy($scope.problemList)
    var arr = [];
    angular.forEach(data,function (item) {
      //问题类型
      // if(!jQuery.isEmptyObject(item.type)) {
        
      // }
      arr.push({
        '名称': item.name,
        '河道': item.riverName,
        '河段名称': item.reachName,
        '行政区域': '',
        '创建人': item.creatorName,
        '问题类型': '',
        '来源': item.sourceStr,
        '问题状态': item.statusStr,
        '创建时间': $filter('date')(item.createDate,'yyyy-MM-dd HH:mm')
      })
    })
    if(arr.length < 1){
      toastr.error('暂无数据,导出失败!');
    }else{
      alasql.promise('SELECT * INTO XLSX("河道问题列表'+'.xlsx", {headers:true}) FROM ?',[arr])
        .then(function (data) {
          if(data == 1){
            $timeout(function(){
              toastr.success('数据导出成功!')
            })
 
          }
        })
    }
  }

  

js部分需要引入两个js文件https://blog-static.cnblogs.com/files/bertha-zm/xlsx.core.min.js  和 https://blog-static.cnblogs.com/files/bertha-zm/alasql.min.js

js部分代码:

原文地址:https://www.cnblogs.com/bertha-zm/p/10120161.html