以指定格式导出到csv

时间:2017-03-02 09:55:19

标签: angularjs export-to-csv

在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代码。

我应该仅以此格式进行更改。 请指南。非常感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

对于预先存在的格式,它通常最好不要自己滚动。 CSV文件可能不会立即出现很多复杂问题,例如分隔符,转义,空值,unicode BOM等。使用已处理所有边缘情况的现有库。

我建议您查看ng-csv哪些可以满足您的需求。