迹忆客 专注技术分享

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

用 JavaScript 读取 Excel 文件

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

有时我们想从 excel 文件中读取和解析数据,并将其转换为 JSON 格式以在我们的网页上使用。我们可以通过各种方式做到这一点。

本文将讨论使用 JavaScript 中的 xlsx 包读取 excel 文件。

在本例中,我们将使用一个名为 ss.xls 的 Excel 文件,该文件将包含两个工作表 Sheet1 和 Sheet2,其中包含一些数据,如下图所示。


安装 xlsx Node.js 包

要安装 xlsx 包,你可以运行以下命令。确保你的系统上安装了 Node.js。

如果不确定是否安装了 Node.js,可以在终端中使用 node -v 命令。如果你获得版本号作为输出,则 Node.js 已安装在你的系统上。

命令:

npm install xlsx

你可以使用此库解析具有 .xlsxlsx 扩展名的 excel 文件。 .xls 是以二进制格式存储数据的旧文件格式,而 .xlsx 是最新的文件格式,它以 ZIP 格式将数据存储在压缩的 XML 文件中。


用 JavaScript 读取 Excel 文件

安装包后,我们首先必须在我们的 Node.js 项目中导入包,即在 index.js 文件中。现在,我们将创建一个函数 parseExcel(),它将一个文件 filename 作为参数并返回一个对象数组。

现在我们有了 excel filename,我们可以使用 XLSX 包的 readFile 函数从该文件中读取和提取所有信息。然后,我们将结果存储在 excelData 变量中。

excelData 变量现在包含与 Excel 文件相关的所有信息,如作者姓名、修改数据、工作表数、文件数据等。

要获取有关存储在与 excel 文件相关的 excelData 变量中的数据的更多信息,你可以使用 console.log() 函数打印该变量。

代码片段:

const XLSX = require('xlsx');

const parseExcel = (filename) => {
  const excelData = XLSX.readFile(filename);

  return Object.keys(excelData.Sheets).map(name => ({
                                             name,
                                             data: XLSX.utils.sheet_to_json(
                                                 excelData.Sheets[name]),
                                           }));
};

parseExcel('./ss.xls').forEach(element => {
  console.log(element.data);
});

excelData 变量现在包含一个名为 Sheets 的对象。这个对象有一个对象集合; Sheets 中的每个对象都代表一个 Excel 文件的工作表。

要解析 excel 文件中存在的所有工作表中的数据,我们将使用 excelData.Sheets 对象。

代码片段:

Sheets: {
  Sheet1: {'!ref': 'A1:D7', A1: [Object], B1: [Object], '!margins': [Object]},
  Sheet2: {'!ref': 'A1:C3', A1: [Object], B1: [Object], '!margins': [Object]}
},

由于 excelData.Sheets 对象内部包含各种对象,如上所示,我们将使用 Object.key() 功能。

现在,我们将使用 map() 函数并将 name 作为从 Object.keys() 获得的参数传递给 map() 函数。使用 map() 函数,我们将返回一个对象,该对象将包含 Excel 工作表的两个属性 name 和 Excel 工作表包含的 data

在这里,我们已经有了名称,可以直接将名称存储在对象中。但是要从 excelData 变量中获取数据,我们必须使用 XLSX.utils 提供的 sheet_to_json() 函数。

正如你在上面的代码片段中看到的,我们从文件中获取的数据是 A1: [Object] 格式,但我们需要解析这些数据。

我们将使用 sheet_to_json() 函数将 Excel 工作表中的数据转换为 JSON 格式。然后,我们将此数据存储在对象 data 的第二个属性中。

你可以为 data 属性指定任何名称。

因此,在这个阶段,如果你通过提供文件路径作为参数来运行 parseExcel() 函数,这将返回一个数组,该数组将包含所有 Excel 工作表及其对象形式的各自数据。

代码片段:

[{
  name: 'Sheet1',
  data: [[Object], [Object], [Object], [Object], [Object], [Object]]
},
 {name: 'Sheet2', data: [[Object], [Object]]}]

现在,为了只获取所有 Excel 工作表的数据而不是名称,我们可以使用 forEach 循环遍历 parseExcel() 函数返回的数组。我们将在每次迭代时获取一个对象并将其存储在 element 变量中。

使用点符号,我们可以访问该对象 element.data 的数据属性,然后在控制台上打印它。

输出:

上一篇:使用 JavaScript 通过 XPath 获取元素

下一篇:没有了

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

本文地址:

相关文章

使用 JavaScript 获取当前 URL

发布时间:2024/03/21 浏览次数:197 分类:JavaScript

在本教程中,我们将讨论如何使用四种不同的方法在 JavaScript 中获取 URL。这些方法将使用 window.location.href、document.location.href、document.URL 和 document.baseURI。

扫一扫阅读全部技术教程

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

最新推荐

教程更新

热门标签

扫码一下
查看教程更方便