JSON以Excel文件转换使用JavaScript

请查找以下代码以获取更多信息。

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数据作为input的function,然后尝试使用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" )是换行符。 需要做什么才能创build相同的CSV格式的Excel文件? 我使用的encodeURI部件有问题吗?

数据url内容不是URI编码的,它是base-64编码的。 您应该使用btoa或类似的解决scheme来从您build立的CSVstring创build您的数据。