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

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

前端有时要处理一些数据(比如多语言文件内容的替换),我们不要傻乎乎地干这种重复枯燥又浪费时间的ctrl C+ ctrl V的工作,这种事情交给计算机做再合适不过了。【相关教程推荐:nodejs视频教程】

这篇文章只是简单地介绍前端如何通过Node来读取Excel或txt文件中的数据,然后写入到txt文件中的方法。首先给出文件的内容:test.txt文件只有一句话(我是txt文件的内容);test.xlsx文件中,具体如图所示:

txt内容sheet1excel内容

读取txt文件

废话不多说,show me your code:

/** 引入Node的文件模块 */const fs = require("fs");/** 获取要读取的文件的路径 */const path = "./test.txt"; /** 判断该文件是否存在 */const isExist = fs.existsSync(path); /** 读取文件的内容 */const data = isExist ? fs.readFileSync(path, "utf-8") : "";/** 测试读取 */console.log("test.txt的内容:", data)  // test.txt的内容: 我是txt文件的内容

登录后复制

写入txt文件

/** 引入Node的文件模块 */const fs = require("fs");/** 测试写入 */fs.writeFile("write.txt", "测试写入", (err, data) => {    if (err) throw err;});

登录后复制

这里我们并不需要主动创建write.txt,代码会自动判断这个文件是否存在,如果不存在则自动创建该文件。注意,如果该文件存在,调用writeFile(该方法的完整使用可以参考这)时,将会用新的内容替换掉原有的内容。运行如下:

写入

还有一种是追加操作,就是在原来的基础上添加数据:

/** 引入Node的文件模块 */const fs = require("fs");/** 测试写入 */fs.appendFile("write.txt", "测试写入", (err, data) => {    if (err) throw err;});

登录后复制

运行如下:

追加

提示:这里需要注意的是,当我们向文件中直接写入的是JS对象的时候,结果并不符合我们的预期:

/** 引入Node的文件模块 */const fs = require("fs");const obj = {    name: 'cc',    age: 15}/** 测试写入 */fs.writeFile("write.txt", obj, (err, data) => {    if (err) throw err;});

登录后复制

运行结果:

写入对象

这时可以通过JSON.stringify()字符串化对象,即可:

/** 引入Node的文件模块 */const fs = require("fs");const obj = {    name: 'cc',    age: 15}/** 测试写入 */fs.writeFile("write.txt", JSON.stringify(obj), (err, data) => {    if (err) throw err;});

登录后复制

结果如下:

JSON字符串化

为了使写入格式更好看一点,可以往JSON.stringify()方法中添加一些参数(JSON.stringify()方法的使用可以参考这),比如添加一个Tab缩进:

/** 引入Node的文件模块 */const fs = require("fs");const obj = {    name: 'cc',    age: 15}/** 测试写入 */fs.writeFile("write.txt", JSON.stringify(obj, null, ''), (err, data) => {    if (err) throw err;});

登录后复制

插入tab缩进

读取Excel文件

/** 引入Node的文件模块 */const fs = require("fs");/** 引入Excel文件处理模块(若没安装,安装一下即可) */const xlsx = require('node-xlsx');/** 解析excel文档 */const sheets = xlsx.parse('./test.xlsx');console.log("sheets data:", sheets)

登录后复制

可以看到输出的结果:

结果

解析后的内容sheets是一个数组,每一个sheet表以一个对象{ name: ‘xxx’, data: […]}的形式作为数组的元素。
完整的样子如下:

/** sheets的完整内容 */[{    name: 'Sheet1', /** sheet页名称 */    data: [        ['name', 'age'], /** 第一个元素为表头 */        ['Tom', 11],        ['Bob', 13]    ]}, {    name: 'Sheet2', /** sheet页名称 */    data: [        ['animal', 'legs'], /** 第一个元素为表头 */        ['cat', 4],        ['dog', 4],        ['duck', 2]    ]}]

登录后复制

写入Excel文件

从上面我们知道了读取Excel后的文件的格式,那么写入也只要按照这种格式构建好,再调用函数写入就行啦~

/** 引入Node的文件模块 */const fs = require("fs");/** 引入Excel文件处理模块 */const xlsx = require('node-xlsx');/** 构建数据 */const myData = [{    name: '我的表格1',    data: [        ['name', 'age'],        ['Tom', 11],        ['Bob', 13]    ]}, {    name: '我的表格2',    data: [        ['animal', 'legs'],        ['cat', 4],        ['dog', 4],        ['duck', 2]    ]}]/** 构建数据流 */const buffer = xlsx.build(myData);/** 将数据写入write.xlsx */fs.writeFile('./write.xlsx', buffer, err => {    if (err) {        throw err;    }});

登录后复制

同理,write.xlsx文件如果不存在的话也会自动创建。运行结果如下:

写入Excel

至此,我们都知道了读取以及写入文件的方法,接下来任你折腾,想干嘛就干嘛,可以愉快地玩数据了~

更多node相关知识,请访问:nodejs视频教程!

以上就是带你使用Node读写txt和Excel文件的详细内容,更多请关注【创想鸟】其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2697973.html

(0)
上一篇 2025年3月7日 18:46:06
下一篇 2025年2月28日 07:10:03

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • 看看怎么使用nodejs生成二维码

    二维码在生活中无处不在,之前我也使用过java的zxing库生成过二维码,功能很强大。 但是其实nodejs上也有很多第三方库能够生成二维码。今天我们就是使用qrcode这个库来生成二维码。【相关教程推荐:nodejs视频教程】 效果展示 …

    2025年3月7日 编程技术
    200
  • 浅析node是怎么实现github第三方登录的

    node是怎么实现github第三方登录的?下面本篇文章给大家介绍一下nodejs实现github第三方登录的方法,希望对大家有所帮助! 一、详细流程 二、具体流程 1.注册应用 ①登录github,Settings=>Develop…

    2025年3月7日 编程技术
    200
  • JWT是什么?Node中怎么实现JWT鉴权机制(浅析)

    本篇文章带大家聊聊关于后端jwt鉴权的相关原理和如何在node中去使用,希望对大家有所帮助,谢谢。 【相关教程推荐:nodejs视频教程】 一、为什么使用JWT 一种技术的出现,就是弥补另一种技术的的缺陷。在JWT出现之前,Session …

    2025年3月7日 编程技术
    200
  • 浅析node怎么实现ocr

    怎么实现ocr(光学字符识别)?下面本篇文章给大家介绍一下使用node实现实现实现ocr的方法,希望对大家有所帮助! ocr即光学字符识别,简单的来说就是把图片上的文字识别出来。 很遗憾我只是一个底层的web程序员?,不咋会AI,要想实现o…

    2025年3月7日 编程技术
    200
  • 浅析node怎么进行微博第三方登录

    怎么进行微博第三方登录?下面本篇文章给大家介绍一下使用node实现微博第三方登录的方法,希望对大家有所帮助! 接入微博第三方登录可以免注册,对用户的体验更好,今天我们就用nodejs实现微博第三方登录(用其它语言也可以)。【相关教程推荐:n…

    2025年3月7日 编程技术
    200
  • 什么是RPC?聊聊node中怎么实现 RPC 通信

    【相关教程推荐:nodejs视频教程】 什么是RPC? RPC:Remote Procedure Call(远程过程调用)是指远程过程调用,也就是说两台服务器A,B,一个应用部署在A服务器上,想要调用B服务器上应用提供的函数/方法,由于不在…

    2025年3月7日
    200
  • node怎么实现定时任务

    node实现定时任务的方法:1、利用setTimeOut和event事件进行管理;2、对所有加入的事件进行排序,并且计算当前时间和最近一个事件发生时间的时间间隔;3、调用setTimeOut设置回调即可。 本教程操作环境:linux7.3系…

    2025年3月7日
    200
  • 聊聊Node中的异步实现与事件驱动

    本篇文章带大家了解一下node中的异步实现与事件驱动,希望对大家有所帮助! Node的特点 计算机中的一些任务一般可以划分为两个类别,一个类别叫做IO密集型,一个叫做计算密集型;对于计算密集型的任务,只能不断榨干CPU的性能,但是对于IO密…

    2025年3月7日 编程技术
    200
  • node中怎么获取命令行中的参数

    在开发cli工具时,往往离不开获取指令中各种参数信息,接下来本文将带着你如何在Node.js中获取执行时的参数。【相关教程推荐:nodejs视频教程 、编程视频】 认识process process是nodejs内置的一个对象,该对象提供了…

    2025年3月7日
    200
  • 浅析Nodejs中的http模块和导出共享

    本篇文章聊聊node的基础,关于http模块及module.exports导出共享的理解和案例,希望对大家有所帮助! node】 通过 http 模块提供的 http.createServer() 方法,就能方便的把一台普通的电脑,变成一台…

    2025年3月7日 编程技术
    200

发表回复

登录后才能评论