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

CSV file does not open correctly in Excel with ngCsv

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

ng-csv 模块采用 javascript object,并将其转换为可下载的 .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>

可能会出现问题,就像我的代码一样,如果您的 header object 以 ID 列开头,如下所示:

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

Excel 表示这是一种错误的文件格式,有时会出现 UI 问题。

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

将 header 更改为:

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

解决了这个问题。

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