📜  如何在 Node.js 中读写 Excel 文件?

📅  最后修改于: 2022-05-13 01:56:30.468000             🧑  作者: Mango

如何在 Node.js 中读写 Excel 文件?

Node.js 是一个开源和跨平台的 JavaScript 运行环境,也可以用于从文件读取和写入文件,可以是 txt、ods、xlsx、docx 等格式。

以下示例介绍了如何从 excel 文件中读取 excel 文件 (.xlsx) 文件,然后将其转换为 JSON 并写入其中。可以使用一个名为xlsx的包来实现我们的目标。

模块安装:您可以使用以下命令安装xlsx模块:

npm install xlsx

注意:对于以下示例, text.xlsx是已使用的虚拟数据文件。

文件名:test.xlsx

表 1:

表 2:

所以 excel 文件 test.xlsx 有 2 张表,一张有学生详细信息,另一张有讲师详细信息。

读取操作文件名:read.js

Javascript
// Requiring the module
const reader = require('xlsx')
  
// Reading our test file
const file = reader.readFile('./test.xlsx')
  
let data = []
  
const sheets = file.SheetNames
  
for(let i = 0; i < sheets.length; i++)
{
   const temp = reader.utils.sheet_to_json(
        file.Sheets[file.SheetNames[i]])
   temp.forEach((res) => {
      data.push(res)
   })
}
  
// Printing data
console.log(data)


Javascript
// Requiring module
const reader = require('xlsx')
  
// Reading our test file
const file = reader.readFile('./test.xlsx')
  
// Sample data set
let student_data = [{
    Student:'Nikhil',
    Age:22,
    Branch:'ISE',
    Marks: 70
},
{
    Student:'Amitha',
    Age:21,
    Branch:'EC',
    Marks:80
}]
  
const ws = reader.utils.json_to_sheet(student_data)
  
reader.utils.book_append_sheet(file,ws,"Sheet3")
  
// Writing to our file
reader.writeFile(file,'./test.xlsx')


说明:首先将npm模块包含在read.js文件中,然后将excel文件读入工作簿,即上述程序中的常量文件。

该特定 excel 文件中的文件数在工作簿的 SheetNames 属性中可用。可以通过以下方式访问:

const sheets = file.SheetNames  // Here the value of the sheets will be 2

从第一页开始,一个 for 循环一直运行到 excel 文件结束。上面代码中使用的最重要的函数之一是 xlsx 包的 utils 模块中的sheet_to_json()函数。它接受一个工作表对象作为参数并返回一个 JSON 对象数组。

有一个 forEach 循环遍历数组temp中存在的每个 JSON 对象,并将其推送到一个变量data中,该变量 data 将包含 JSON 格式的所有数据。

最后,打印数据或对 JSON 对象数组执行任何其他修改。

运行应用程序的步骤:

使用以下命令运行read.js文件:

node read.js

输出:

写入操作在下面的示例中,我们将 JSON 对象数组转换为 Excel 表格并将其附加到文件中。

文件名:write.js

Javascript

// Requiring module
const reader = require('xlsx')
  
// Reading our test file
const file = reader.readFile('./test.xlsx')
  
// Sample data set
let student_data = [{
    Student:'Nikhil',
    Age:22,
    Branch:'ISE',
    Marks: 70
},
{
    Student:'Amitha',
    Age:21,
    Branch:'EC',
    Marks:80
}]
  
const ws = reader.utils.json_to_sheet(student_data)
  
reader.utils.book_append_sheet(file,ws,"Sheet3")
  
// Writing to our file
reader.writeFile(file,'./test.xlsx')

说明:这里我们有一个名为student_data 的 JSON 对象数组。我们在这个程序中使用了两个主要函数,即json_to_sheet() ,它接受对象数组并将它们转换为工作表,另一个函数是book_append_sheet()将工作表附加到工作簿中。

最后,使用 writeFile()函数将所有更改写入 test.xlsx 文件,该函数将工作簿和 excel 文件作为输入参数。

运行应用程序的步骤:

使用以下命令运行read.js文件:

node write.js

输出:最终的 test.xlsx 文件看起来像这样:

表 1:

表 2:

表 3:我们可以看到表 3 已附加到 test.xlsx 中,如下所示: