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部分代码:

浙公网安备 33010602011771号