我正在尝试使用Javascript创建Excel文件。
首先,我要填充一个将作为文件内容的数组,然后创建要下载的文件。
问题在于,当我创建文件时,Excel文件中的字符'é'变为'é'。
我认为问题是由于UTF8编码引起的,但我不知道如何解决。
这是我的代码:
let result_table = content;
let lineArray = [];
result_table.forEach(function(infoArray, index) {
// Construction de la string
for (let i=0;i<infoArray.length;++i){
if (infoArray[i] === '-1') {
infoArray[i] = '';
}
}
let line = infoArray.join(" \t");
lineArray.push(index === 0 ? line : line);
});
let csvContent = data['prenom_nom'] + " \t" + calendar.months[data['month']-1].name + ' ' + data['year'] + "\r\n \r\n" + lineArray.join("\r\n");
console.log(csvContent);
let excel_file = document.createElement('a');
excel_file.setAttribute('href', 'data:application/vnd.ms-excel;charset=utf-8,' + encodeURIComponent(csvContent));
excel_file.setAttribute('download', data['prenom_nom'] + '_' + data['month'] + '_' + data['year'] + '.xls');
console.log(excel_file);
document.body.appendChild(excel_file);
excel_file.click();
document.body.removeChild(excel_file);
console.log(csvContent)
返回一个基本字符串,没有错误。
console.log(excel_file)
返回一个预期的<a>
链接,但是在该链接的href内部,我可以看到é变成了其他内容。
能否请您澄清一下,并提供解决方案以避免这种转换?非常感谢!