Хотя я пытаюсь загрузить данные фильтра в ng-table в CSV, я получаю разделение одной строки на две строки.
Результат будет выглядеть следующим образом:
Строка содержит три столбца
Item 1 | 12222-12228-14567-124568-18680-20940-18717-ABCDED-sdf_dsfsdf | X-Large
Вместо этого я получаю
1-я строка
Item 1 | 12222-12228-14567-124568-18680-20940-18717-ABCDED-sdf_dsfsdf |
2-я строка
X-Large
вот мой код
var data = [{ "name": "Item 1", "color": "12222-12228-14567-124568-18680-20940-18717-ABCDED-aSFDasdf_sdfsdf_dsfsdf", "size": "X-Large" },
{ "name": "Item 2", "color": "Green", "size": "X-Large" },
{ "name": "Item 3", "color": "Green", "size": "X-Large" }];
$scope.downloadData = function (data){
var csv = $scope.JsonToCsv(data);
}
$scope.JsonToCsv = function(objArray) {
var array = typeof objArray != 'object' ? JSON.parse(objArray) :objArray;
var str = '';
var line = '';
var head = array[0];
for (var index in array[0]) {
var value = index + "";
line += '"' + value.replace(/"/g, '""') + '",';
}
line = line.slice(0, -1);
str += line + '\r\n';
for (var i = 0; i < array.length; i++) {
var line = '';
for (var index in array[i]) {
line += array[i][index] + ',';
}
line = line.slice(0, -1);
str += line + '\r\n';
}
return str;
}
Может ли кто-нибудь помочь мне найти то, что пошло не так в моем коде?
У меня есть рабочий код для этого, я изменился в соответствии с вашими потребностями. Надеюсь, это сработает и для вас
var array = typeof objArray != 'object' ? JSON.parse(objArray) : objArray;
var str = '';
var line = "";
for (var index in array[0]) {
line += index + ',';
}
line = line.slice(0, -1);
str += line + '\r\n';
for (var i = 0; i < array.length; i++) {
var line = "";
for (var index in array[i]) {
line += '"' + array[i][index] + '",';
}
line.slice(0, line.length - 1);
str += line + '\r\n';
}
if (str == '') {
alert("oops");
return;
}
console.log(str);
return str;
Благодаря :)