如何在 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 中,如下所示: