0
我有一個函數可以將數組轉換爲csv文件。它用逗號分隔,但當數組中的某個值有逗號時,它也會在這裏分開。我試圖用引號包住逗號並將其轉義,但仍然會打破csv。關於如何在逗號分隔但不在數組的值內的任何想法?數組到csv忽略逗號的值
convertArrayOfObjectsToCSV: function(args) {
var result, ctr, keys, columnDelimiter, lineDelimiter, data;
data = args.data || null;
if (data == null || !data.length) {
return null;
}
columnDelimiter = args.columnDelimiter || ',';
lineDelimiter = args.lineDelimiter || '\n';
keys = Object.keys(data[0]);
result = '';
result += keys.join(columnDelimiter);
result += lineDelimiter;
data.forEach(function(item) {
ctr = 0;
keys.forEach(function(key) {
if (ctr > 0) result += columnDelimiter;
result += item[key];
ctr++;
});
result += lineDelimiter;
});
return result;
},
downloadCSV: function(args) {
var data, filename, link, csvArray;
csvArray = ids.map(function(id) {
return {
'id': id.id,
'image': id.image,
'desc': id.desc
};
});
var csv = utilities.convertArrayOfObjectsToCSV({
data: csvArray
});
if (csv == null) return;
filename = args.filename || 'export.csv';
if (!csv.match(/^data:text\/csv/i)) {
csv = 'data:text/csv;charset=utf-8,' + csv;
}
data = encodeURI(csv);
link = document.createElement('a');
link.setAttribute('href', data);
link.setAttribute('download', filename);
link.click();
}
};
這裏是csvArray創建的數據樣本:你怎麼寫,導致文本
[{id:123,
image:image,
desc : "hello here is a comma , I am after the comma"}]
用雙引號引用您的文本值 – charlietfl