Javascript JS将字符串导出为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文件可以有多长,还是字符串可以有多长。你知道我怎样才

我正在尝试在JS客户端应用程序上导出有效的csv。我有一个函数,通过在每个项目之间添加逗号和在数组的每行之间添加行终止符,将数组转换为csv字符串。我确信我的函数运行良好(至少在格式方面)。但是,当给定的行数超过160行时,它就会停止追加。可能有什么问题?字符串的长度有限制吗?csv生成的客户端可以使用多长时间的限制

我的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并非所有英雄都戴斗篷。非常感谢。