带你使用Node读写txt和Excel文件

1. Node.js读取txt文件

Node.js提供了fs模块来读写文件。在读取txt文件时,可以使用fs模块中的readFile方法。

const fs = require('fs');

fs.readFile('example.txt', 'utf8', (err, data) => {

if (err) throw err;

console.log(data);

});

上述代码中,readFile的第一个参数是要读取的文件名,第二个参数是指定编码格式(这里使用utf8)。回调函数中的data参数就是读取到的文件内容。使用console.log打印出来即可。

主要需要注意一下几点:

读取文件需要使用异步方法,所以需要回调函数。

readFile方法第二个参数指定的是编码格式,如果不指定则返回原始的Buffer对象,需要使用toString方法转换成字符串。

当读取文件出现错误时,将会抛出异常,需要使用try-catch或者是在回调函数中处理错误。

2. Node.js写入txt文件

当需要写入txt文件时,可以使用fs模块中的writeFile方法。

const fs = require('fs');

const data = 'Hello world';

fs.writeFile('example.txt', data, function(err) {

if (err) throw err;

console.log('Successfully saved.');

});

上述代码中,writeFile方法的第一个参数是要写入的文件名,第二个参数是要写入的内容,第三个参数是回调函数,当写入文件成功时,会执行回调函数。

主要需要注意一下几点:

写入文件时会覆盖原文件内容,如果需要追加内容需要使用appendFile方法。

当写入文件出现错误时,将会抛出异常,需要使用try-catch或者是在回调函数中处理错误。

3. Node.js读取Excel文件

3.1 安装依赖

在读取Excel文件之前,需要安装xlsx模块。可以使用npm来安装。

npm install xlsx

3.2 读取Excel文件

使用xlsx模块中的readFile方法可以读取Excel文件。下面是一个例子:

const xlsx = require('xlsx');

const workbook = xlsx.readFile('example.xlsx');

const firstSheet = workbook.Sheets[workbook.SheetNames[0]];

console.log(xlsx.utils.sheet_to_json(firstSheet));

上述代码中,readFile的第一个参数是要读取的文件名。读取成功后,可以使用workbook对象的SheetNames属性和Sheets属性访问到每个sheet的信息。可以把每个sheet转换成JSON格式来操作,使用xlsx.utils.sheet_to_json方法即可。

4. Node.js写入Excel文件

在使用Node.js写入Excel文件时,需要使用xlsx模块中的writeFile方法。下面是一个例子:

const xlsx = require('xlsx');

const data = [

{name: 'John', age: 28},

{name: 'Jane', age: 25},

{name: 'Bob', age: 30}

];

const worksheet = xlsx.utils.json_to_sheet(data);

const workbook = xlsx.utils.book_new();

xlsx.utils.book_append_sheet(workbook, worksheet, 'Sheet1');

xlsx.writeFile(workbook, 'example.xlsx');

上述代码中,首先将要写入的数据转换成worksheet对象。然后创建workbook对象,并将worksheet添加到workbook中。最后使用writeFile方法写入文件。

总结

Node.js提供了fs模块和xlsx模块来读写文件和Excel文件。读取和写入txt文件比较简单,只需要注意异步方法以及出错处理即可。读写Excel文件需要注意安装依赖,使用SheetNames和Sheets属性访问sheet信息,以及转换成JSON格式。写入Excel文件需要先将内容转换成worksheet对象,然后添加到workbook中,最后使用writeFile方法写入文件。

免责声明:本文来自互联网,本站所有信息(包括但不限于文字、视频、音频、数据及图表),不保证该信息的准确性、真实性、完整性、有效性、及时性、原创性等,版权归属于原作者,如无意侵犯媒体或个人知识产权,请来电或致函告之,本站将在第一时间处理。猿码集站发布此文目的在于促进信息交流,此文观点与本站立场无关,不承担任何责任。