Json使用javascript excel文件转换

时间:2016-01-11 14:05:58

标签: javascript json excel

请参阅以下代码以获取更多信息。

function dataToCSVTry(arr) {
    var fileName = "CSVFile";
    var data = "";
    for (var i = 0; i < arr.length; i++) {
    data += (arr[i].id + " , " + arr[i].time + "\r\n");
    }
    var url = 'data:text/csv;charset=utf8,' + encodeURI(data);
    window.open(url, '_blank');
    window.download = (url + ".txt");

    var encodedUri = encodeURI(url);
    var link = document.createElement("a");
    link.setAttribute("href", encodedUri);
    link.setAttribute("download", "my_data.csv");
    link.click();
  };

`

这是一个函数,我将JSON数据作为输入提供,之后尝试使用for循环将其转换为CSV(逗号分隔值)。 之后,我试图以.txt和.csv格式保存它。由于.txt很容易保存,问题出现在excel文件中,数据如下:

 "1%20%2C%20161.963%0A%0D%0A2%20%2C%20473.222%0A%0D%0A3%20%2C%20error%0A%0D%0A"

其中一些代码(我认为)用于空格("%20%2C%20"),其他一些代码("%0A%0D%0A")用于换行符。要以相同的CSV格式创建Excel文件需要做什么?我使用的encodeURI部分有问题吗?

1 个答案:

答案 0 :(得分:0)

数据网址内容不是URI编码的,它是base-64编码的。您应该使用btoa或类似解决方案从您构建的CSV字符串创建数据。