Javascript JS将字符串导出为csv被截断
我正在尝试在JS客户端应用程序上导出有效的csv。我有一个函数,通过在每个项目之间添加逗号和在数组的每行之间添加行终止符,将数组转换为csv字符串。我确信我的函数运行良好(至少在格式方面)。但是,当给定的行数超过160行时,它就会停止追加。可能有什么问题?字符串的长度有限制吗?csv生成的客户端可以使用多长时间的限制 我的CSV标题是:Javascript JS将字符串导出为csv被截断,javascript,string,csv,export-to-csv,Javascript,String,Csv,Export To Csv,我正在尝试在JS客户端应用程序上导出有效的csv。我有一个函数,通过在每个项目之间添加逗号和在数组的每行之间添加行终止符,将数组转换为csv字符串。我确信我的函数运行良好(至少在格式方面)。但是,当给定的行数超过160行时,它就会停止追加。可能有什么问题?字符串的长度有限制吗?csv生成的客户端可以使用多长时间的限制 我的CSV标题是:data:text/CSV;字符集=utf-8, [编辑]我认为这实际上是浏览器设置的某种限制。不确定是CSV文件可以有多长,还是字符串可以有多长。你知道我怎样才
data:text/CSV;字符集=utf-8,
[编辑]我认为这实际上是浏览器设置的某种限制。不确定是CSV文件可以有多长,还是字符串可以有多长。你知道我怎样才能绕过这个限制吗
[编辑]代码:
const BASE_CSV_HEADER = 'data:text/csv;charset=utf-8'
const stringify = text => {
let retval
try {
retval = text.toString()
} catch(e) {
retval = text
}
return typeof retval === 'string' ? retval || ' '
}
const stripForCSV = (row) => {
let newRow = []
row.forEach((text) => {
text = stringify(text)
newRow.push(text.replace(/,/g, '.')) // to avoid comma clashes
})
return newRow
}
const arraysToCsv = (arrays) => {
let csv = ''
arrays.forEach(row => {
row = stripForCSV(row)
csv += row.join(',');
csv += "\n";
})
return csv
}
const getCSV (jsObject) => {
const arrays = convertJsObjectToArrayOfArrays(jsObject)
const csv = arraysToCsv(arrays)
return BASE_CSV_HEADER + csv // Removed encodeURI
}
[编辑]
解决了
如本文所述:
我不得不将下载类型更改为Blob。请分享您正在下载的代码using@abhinavxeon并非所有英雄都戴斗篷。非常感谢。请分享你正在使用的代码using@abhinavxeon并非所有英雄都戴斗篷。非常感谢。