2017-03-02 76 views
0

尝试几乎所有关于SO的相关问题的答案后,我仍然没有得到它。以指定格式导出到csv

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

一般来说,最好是当涉及到预先存在的格式时,不要推出自己的。 CSV文件中有许多复杂性可能不是很明显,例如分隔符,转义符,空值,unicode BOM等等。使用已经处理了所有边缘案例的现有库。

我建议你看看ng-csv哪个会做你需要的。