当前位置: 首页 > 面试题库 >

如何将JavaScript数组信息导出到csv(在客户端)?

沈枫涟
2023-03-14
问题内容

我知道有很多这种性质的问题,但是我需要使用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";
});

或更短的方法(using 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.openencodeURI函数下载CSV文件,如下所示:

var encodedUri = encodeURI(csvContent);
window.open(encodedUri);

编辑:

如果要给文件指定一个特定的名称,则必须做一些不同的事情,因为不支持使用window.open方法访问数据URI
。为了实现这一点,您可以创建一个隐藏的<a>DOM节点并按download如下所示设置其属性:

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".


 类似资料:
  • 我想用一个数据框来存储我的投资组合信息,并每分钟更新一次。但是下面代码的结果是空的,我是否遗漏了什么?

  • csv文件可以正确下载,但里面什么都没有。我希望每个新条目在导出之前在不同的行上。不确定为什么数据没有在CSV中注册,我在这一点上没有得到任何错误。谢谢你的帮助。这是一个chrome扩展。 我在下面的相关帖子中尝试了所有不同的答案,但似乎没有一个在CSV中注册我的数据: 我也尝试了以上问题的所有其他可能的答案。我很感激你的帮助!谢谢!!

  • 我关注了这篇文章:如何将JavaScript数组信息导出到csv(在客户端)?将嵌套js数组写入csv文件。 该数组如下所示:

  • 我正在使用Spring Boot hibernate制作一个书店rest api,我不知道该如何进行。因此,首先创建用户(使用此处未发布的DTO): 然后他可以登录并搜索他感兴趣的书籍。当他想订购时(使用POST和JSON包含他的书),他应该在我的客户实体中输入他的详细信息(使用DTO): 这是一个好方法吗?我不知道如何才能将用户和客户联系起来- 编辑:澄清: > 用户注册并且只有电子邮件和密码-

  • 问题内容: 我正在使用Spark 1.3.1(PySpark),并且已经使用SQL查询生成了一个表。我现在有一个对象是。我想将此对象(我称其为“表”)导出到一个csv文件,以便我可以操纵它并绘制列。如何将“表格”导出到csv文件? 谢谢! 问题答案: 如果数据帧适合驱动程序内存,并且您想保存到本地文件系统,则可以使用方法将Spark DataFrame 转换为本地Pandas DataFrame

  • 我正在使用适用于Windows的Docker: < li>Docker版本18.03.1-ce-win64 < li>Docker引擎18.03.1-ce < li>ClickHouse客户端版本1.1.54380 < li>ClickHouse服务器版本1.1.54380 为了将数据从表导出为CSV格式,我正在使用以下命令: > 现在运行容器进行导出 注意:上面的命令可以很好地工作。 现在运行<