Javascript excel创作会创建“é”字符

时间:2019-05-16 13:21:04

标签: javascript excel

我正在尝试使用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内部,我可以看到é变成了其他内容。

能否请您澄清一下,并提供解决方案以避免这种转换?非常感谢!

0 个答案:

没有答案