代码之家  ›  专栏  ›  技术社区  ›  Sabith

下载的excel中出现阿拉伯字符错误

  •  0
  • Sabith  · 技术社区  · 6 年前

    我正在尝试用javascript将数据导出到excel。下面是我使用的代码:

    var createAndExport = function(data){
                var table = "<table><thead><tr><td>";
                var head = Object.keys(data[0]);
                for(var i=0;i<head.length;i++){
                    table += head[i]+"</td><td>";
                }
                table += "</td></tr></thead><tbody>";
                for(var i=0;i<data.length;i++){
                    table += "<tr>";
                    for(var j=0;j<head.length;j++){
                        table += "<td>"+data[i][head[j]]+"</td>";
                    }
                    table += "</tr>";
                }
                table += "</tbody></table>";
                var uri = 'data:application/vnd.ms-excel;charset=utf-8,'+ table;
    
                var downloadLink = document.createElement("a");
                downloadLink.href = uri;
                downloadLink.download = "data.xls";
    
                document.body.appendChild(downloadLink);
                downloadLink.click();
                document.body.removeChild(downloadLink);
            }
    

    此代码运行良好,并将数据下载为excel。但是这个问题是包含阿拉伯语单词的数据,就像在图像中加载的Excel中出现的一些其他字符一样。 enter image description here

    我怎样才能解决这个阿拉伯单词的问题?

    1 回复  |  直到 6 年前
        1
  •  1
  •   Axel Richter    6 年前

    编码信息需要在 HTML 模板也:

    var createAndExport = function(data){
                var table = "<head><meta charset='UTF-8'></head><table><thead><tr><td>";
    ...
    

    见小提琴: https://jsfiddle.net/3fohpL9u/2/