2017-03-02 73 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哪個會做你需要的。