迹忆客 专注技术分享

当前位置:主页 > 学无止境 > WEB前端 > JavaScript >

在 JavaScript 中将数组导出为 CSV

作者:迹忆客 最近更新:2024/03/23 浏览次数:

本教程将演示如何在客户端将 JavaScript 数组信息导出到 CSV 文件。

要将数组信息转换为 CSV 文件,我们需要将 JavaScript 数据正确解析为 CSV 格式。我们需要将其存储为可以处理编码和 CSV 数据格式的对象。

在我们的示例中,我们使用一组数组来存储数据。

const data =
    [['rahul', 'delhi', 'accounts dept'], ['rajeev', 'UP', 'sales dept']];

let csvContent = 'data:text/csv;charset=utf-8,';

data.forEach(function(rowArray) {
  let row = rowArray.join(',');
  csvContent += row + '\r\n';
});

我们将 data 数组中的内容存储到 csvContent 对象。我们创建每个数组的行并将其存储在一个单独的对象中。

或者,我们可以使用以下代码,因为它是使用箭头函数实现相同结果的更短方法。

const data =
    [['rahul', 'delhi', 'accounts dept'], ['rajeev', 'UP', 'sales dept']];
let csvContent =
    'data:text/csv;charset=utf-8,' + data.map(e => e.join(',')).join('\n');

map() 函数对数组中的每个元素调用一个函数并创建一个新数组。join() 方法将在分隔符的帮助下将现有数组中的组件连接到一个字符串。在我们的例子中,我们使用逗号作为分隔符。

要下载和编码上面创建的 CSV 对象,我们使用以下代码。

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

现在我们将这个 csvContent 对象导出到一个外部文件。EncodeURI 用于对 URI 进行编码。此函数对除 (, / ? : @ & = + $) 之外的特殊字符进行编码,并返回表示编码后的 URI 的字符串值。

为了给 CSV 文件一个特定的名字,我们需要创建一个隐藏的 DOM 节点,并且必须设置下载功能。

这是在下面完成的。

var encodedUri = encodeURI(csvContent);
var link = document.createElement('a');
link.setAttribute('href', encodedUri);
link.setAttribute('download', 'my_data.csv');
document.body.appendChild(link);
link.click();

setAttribute() 方法将特定的属性值添加到给定元素。在上面的代码中,link.click() 用于下载直接下载 link.setAttribute() 函数中提供的文件名。

如果我们希望将数据插入双引号内,我们可以在创建 CSV 数据对象时使用 JSON.stringify() 函数。

请参考下面的代码。

const data =
    [['rahul', 'delhi', 'accounts dept'], ['rajeev', 'UP', 'sales dept']];
var csv = data.map(function(d) {
                return JSON.stringify(d);
              })
              .join('\n')
              .replace(/(^\[)|(\]$)/mg, '');
console.log(csv);

输出:

"rahul" "delhi" "accounts"
"rajev" "UP"  "sales dept"

转载请发邮件至 1244347461@qq.com 进行申请,经作者同意之后,转载请以链接形式注明出处

本文地址:

相关文章

Do you understand JavaScript closures?

发布时间:2025/02/21 浏览次数:108 分类:JavaScript

The function of a closure can be inferred from its name, suggesting that it is related to the concept of scope. A closure itself is a core concept in JavaScript, and being a core concept, it is naturally also a difficult one.

Do you know about the hidden traps in variables in JavaScript?

发布时间:2025/02/21 浏览次数:178 分类:JavaScript

Whether you're just starting to learn JavaScript or have been using it for a long time, I believe you'll encounter some traps related to JavaScript variable scope. The goal is to identify these traps before you fall into them, in order to av

How much do you know about the Prototype Chain?

发布时间:2025/02/21 浏览次数:150 分类:JavaScript

The prototype chain can be considered one of the core features of JavaScript, and certainly one of its more challenging aspects. If you've learned other object-oriented programming languages, you may find it somewhat confusing when you start

用 jQuery 检查复选框是否被选中

发布时间:2024/03/24 浏览次数:102 分类:JavaScript

在本教程中学习 jQuery 检查复选框是否被选中的所有很酷的方法。我们展示了使用直接 DOM 操作、提取 JavaScript 属性的 jQuery 方法以及使用 jQuery 选择器的不同方法。你还将找到许多有用的

扫一扫阅读全部技术教程

社交账号
  • https://www.github.com/onmpw
  • qq:1244347461

最新推荐

教程更新

热门标签

扫码一下
查看教程更方便