使用ngCsv在Excel中无法正确打开CSV文件

时间:2016-03-01 16:19:19

标签: javascript angularjs csv export-to-csv

我遇到了ng-csv模块的问题,我想我会分享。

ng-csv模块接受一个javascript对象,并将其转换为可下载的.csv文件。

以下是此处显示的示例代码:ngmodules site

重要的部分在这里:

      <button class="btn btn-default"
              ng-csv="getArray" lazy-load="true" filename="{{ filename }}.csv" field-separator="{{separator}}"
              >Export to CSV (Lazy Load)
      </button>

在这里:

    <script>
        var myapp = angular.module('myapp', ["ngSanitize", "ngCsv"]);

        myapp.controller('myctrl', function ($scope) {
            $scope.filename = "test";
            $scope.getArray = [{a: 1, b:2}, {a:3, b:4}];

          $scope.addRandomRow = function() {
            $scope.getArray.push({a: Math.floor((Math.random()*10)+1), b: Math.floor((Math.random()*10)+1)});
          };

          $scope.getHeader = function () {return ["A", "B"]};
        });
    </script>

可能会出现问题,就像我的代码所做的那样,如果您的标题对象以ID列开头,请执行以下操作:

$scope.getHeader = function () {return ["ID","A", "B"]};

Excel表示它是一种糟糕的文件格式,有时会出现UI问题。

原因是Excel不喜欢以大写ID开头的csv文件,根据这个来源:Microsoft Support

1 个答案:

答案 0 :(得分:3)

将标题更改为:

$scope.getHeader = function () {return ["id","A", "B"]};

解决了这个问题。

Excel不喜欢以大写ID开头的.csv文件。