在SO上几乎所有相关问题的答案后, 我还没有得到它。
HTML文件:
<li><a ng-click="exportToCsv('#total');">
<i class="fa fa-file-o mr-right7"></i>Export to CSV</a></li>
控制器文件:
$scope.exportToCsv=function(tableId){ // ex: '#my-table'
$scope.exportHref=Csv.tableToExcel(tableId,'List');
$timeout(function(){location.href=$scope.exportHref;},100);
我的功能在控制器文件中。
gModule.factory('Csv',function($window){
var uri='data:text/comma-separated-values;base64,',
template='<table>{table}</table>',
base64=function(s){return $window.btoa(unescape(encodeURIComponent(s)));},
format=function(s,c){return s.replace(/{(\w+)}/g,function(m,p){return c[p];})};
return {
tableToExcel:function(tableId,worksheetName){
var table=$(tableId),
ctx={worksheet:worksheetName,table:table.html()},
href=uri+base64(format(template,ctx));
return href;
}
};
});
我需要以csv格式导出表格中的数据,但我得到的是整个html代码。
我应该仅以此格式进行更改。 请指南。非常感谢您的帮助。
答案 0 :(得分:0)
对于预先存在的格式,它通常最好不要自己滚动。 CSV文件可能不会立即出现很多复杂问题,例如分隔符,转义,空值,unicode BOM等。使用已处理所有边缘情况的现有库。
我建议您查看ng-csv哪些可以满足您的需求。