我需要知道很多关于JavaScript的问题.我使用Dojo 1.8
,数组中有所有属性信息,如下所示:
[["name1", "city_name1", ...]["name2", "city_name2", ...]]
知道如何在客户端将其导出到CSV
吗?
我需要知道很多关于JavaScript的问题.我使用Dojo 1.8
,数组中有所有属性信息,如下所示:
[["name1", "city_name1", ...]["name2", "city_name2", ...]]
知道如何在客户端将其导出到CSV
吗?
您可以在本机JavaScript中实现这一点.您必须将数据解析为正确的CSV格式(假设您使用的是问题中描述的数据数组):
const rows = [
["name1", "city1", "some other info"],
["name2", "city2", "more info"]
];
let csvContent = "data:text/csv;charset=utf-8,";
rows.forEach(function(rowArray) {
let row = rowArray.join(",");
csvContent += row + "\r\n";
});
或者用更短的方法(使用arrow functions):
const rows = [
["name1", "city1", "some other info"],
["name2", "city2", "more info"]
];
let csvContent = "data:text/csv;charset=utf-8,"
+ rows.map(e => e.join(",")).join("\n");
然后可以使用JavaScript的window.open
和encodeURI
函数下载CSV文件,如下所示:
var encodedUri = encodeURI(csvContent);
window.open(encodedUri);
window.open
method. In order to achieve this, you can create a hidden <a>
DOM node and set its download
attribute as follows:
var encodedUri = encodeURI(csvContent);
var link = document.createElement("a");
link.setAttribute("href", encodedUri);
link.setAttribute("download", "my_data.csv");
document.body.appendChild(link); // Required for FF
link.click(); // This will download the data file named "my_data.csv".