将我的ng-repeat导出到csv - 我做错了什么?

时间:2018-02-13 07:35:44

标签: angularjs export-to-csv

我正在尝试创建此函数,该函数在两个数组之后循环并将数据导出到csv,它模拟两个嵌套的ng-repeat表(第一个ng-repeat表示头,第二个表示数据)。

代码仍然不是很干净。

 $scope.download = function () {

                var headerarray =$scope.displayColumns;
                var array1 = [];
                var array2 = [];

                for (i = 0; i < $scope.filteredObjects.length; i++) {

                    for (j = 0; j < $scope.displayColumns.length; j++) {

                        if(i===0 && j===0) {
                            array1.push(headerarray);
                            array2.push(array1);
                            console.log(array2)
                            var str = array2.join("\n")
                            var array1 = []
                        }
              array1.push($scope.showColumnData($scope.filteredObjects[i], $scope.displayColumns[j]));


                        if (j === $scope.displayColumns.length - 1) {

                            array2.push(array1);
                            console.log(array2)
                            var str = array2.join("\n")
                            var array1 = []
                        }
                    }
                }
                console.log(str);

                console.log(str.length);

                var dl = new Blob([str], { type: 'text' });

                saveAs(dl, "export.csv")

            }

在Excel中打开文件时,输出看起来很好:

enter image description here

在罗恩的CSV编辑器中,它看起来像这样:

enter image description here

在记事本中

enter image description here

但是当我用纯记事本打开它时,它就是这样的一个衬垫:

enter image description here

我担心我的csv格式不完全正确吗? Excel和Ron正在认识的东西是纯粹的记事本吗?

1 个答案:

答案 0 :(得分:0)

如果您希望换行符在记事本中显示正常,则必须使用\r\n而不是\n,因为它遵循Microsoft换行符格式。

您可以查看https://en.wikipedia.org/wiki/Newline#Representations_in_different_character_encoding_specifications了解更多详情。