当CSV文件中包含# value时, CSV下载失败



如果csv文件包含#值,当我尝试在vuejs中导出csv数据时,数据将被破坏。这是我的代码。有编码问题吗?

download_csv(){   
var date = new Date();
var hiddenElement = document.createElement('a');
hiddenElement.href = 'data:text/csv;charset=utf-8,%EF%BB%BF' + encodeURI(this.CSVlogs);
hiddenElement.target = '_blank';
var today = moment(date).format('YYYY-MM-DD');
hiddenElement.download = 'CWORK USERLIST_' + today + '.csv';
hiddenElement.click();
},
let rows = ['id', 'date', 'extra columns']
let csvContent = 'data:text/csv;charset=utf-8,' + rows.join(',') + 'rn'
let currentThis = this
this.data.forEach(function (row) {
let container = [row.id, moment(row.date).format('DD MMMM YYYY').toString()]
container.push(row.extra_column_data)
csvContent += container.join(',') + 'rn'
})
let link = document.createElement('a')
link.setAttribute('href', encodeURI(csvContent))
link.setAttribute('download', 'csv_name.csv')
document.body.appendChild(link)
link.click()

您只需要将适当的数据传递给CSV内容

这段代码为我工作

这是因为数据中包含#,CSV将其作为行结束符和换行符。因此,在将其解析为CSV文件之前,我将所有的#值替换为空格。

hiddenElement。href = 'data:text/csv;charset=utf-8,%EF%BB%BF' + encodeURI(this.CSVlogs. xml)。替换(/#/g, ' '));

最新更新