node读写Excel操作实例分析

yizhihongxing

Node读写Excel操作实例分析

本攻略介绍如何利用Node.js进行Excel文件的读写操作,主要包括以下内容:

  • Excel文件的读取;
  • Excel文件的写入;
  • Excel文件的修改。

Excel文件的读取

安装依赖

使用Node.js进行Excel文件的读取,需要安装如下依赖:

npm install xlsx --save

基本使用

使用xlsx模块读取Excel文件的基本步骤如下:

const xlsx = require('xlsx');

const workbook = xlsx.readFile('file.xlsx');
const sheet_name_list = workbook.SheetNames;
const data = xlsx.utils.sheet_to_json(workbook.Sheets[sheet_name_list[0]])
console.log(data);

以上代码中,xlsx.readFile方法读取Excel文件,并返回一个workbook对象;workbook.SheetNames属性获取Excel文件中的所有sheet名;xlsx.utils.sheet_to_json方法将指定的sheet数据转化为json格式的数据。

实例说明

以下代码实现了读取Excel文件test.xlsx中第一个sheet的所有行数据的功能:

const xlsx = require('xlsx');
const path = require('path');

const filePath = path.join(__dirname, 'test.xlsx');
const workbook = xlsx.readFile(filePath);
const data = xlsx.utils.sheet_to_json(workbook.Sheets[workbook.SheetNames[0]]);
console.log(data);

Excel文件的写入

基本使用

使用xlsx模块写入Excel文件的基本步骤如下:

const xlsx = require('xlsx');

const worksheet = xlsx.utils.json_to_sheet([
    {"姓名": "张三", "年龄": "25", "性别": "男"},
    {"姓名": "李四", "年龄": "30", "性别": "女"},
]);
const workbook = xlsx.utils.book_new();
xlsx.utils.book_append_sheet(workbook, worksheet, "Sheet1");
xlsx.writeFile(workbook, 'file.xlsx');

以上代码中,xlsx.utils.json_to_sheet方法将json格式的数据转化为sheet;xlsx.utils.book_new方法生成一个新的workbook对象,xlsx.utils.book_append_sheet方法将生成的sheet添加到workbook中;xlsx.writeFile方法将workbook写入到Excel文件中。

实例说明

以下代码实现了将一个json数组写入到Excel文件test.xlsx中第一个sheet中的功能:

const xlsx = require('xlsx');
const path = require('path');

const filePath = path.join(__dirname, 'test.xlsx');
const workbook = xlsx.utils.book_new();
const worksheet = xlsx.utils.json_to_sheet([
  {"姓名": "张三", "年龄": "25", "性别": "男"},
  {"姓名": "李四", "年龄": "30", "性别": "女"},
]);
xlsx.utils.book_append_sheet(workbook, worksheet, 'Sheet1');
xlsx.writeFile(workbook, filePath);

Excel文件的修改

基本使用

使用xlsx模块修改Excel文件的基本步骤如下:

const xlsx = require('xlsx');

const workbook = xlsx.readFile('file.xlsx');
const worksheet = workbook.Sheets[workbook.SheetNames[0]];
worksheet['A1'].v = 100;
xlsx.writeFile(workbook, 'file.xlsx');

以上代码中,xlsx.readFile方法读取Excel文件并返回一个workbook对象,workbook.Sheets[workbook.SheetNames[0]]获取第一个sheet的数据;worksheet['A1'].v = 100修改A1单元格的值;最后使用xlsx.writeFile方法将修改后的workbook对象写入到Excel文件中。

实例说明

以下代码实现了将Excel文件test.xlsx中第一个sheet的A1单元格的值修改为100的功能:

const xlsx = require('xlsx');
const path = require('path');

const filePath = path.join(__dirname, 'test.xlsx');
const workbook = xlsx.readFile(filePath);
const worksheet = workbook.Sheets[workbook.SheetNames[0]];
worksheet['A1'].v = 100;
xlsx.writeFile(workbook, filePath);

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:node读写Excel操作实例分析 - Python技术站

(0)
上一篇 2023年6月8日
下一篇 2023年6月8日

相关文章

  • Node.js 子线程Crash 问题的排查方法

    下面是关于”Node.js 子线程Crash 问题的排查方法”的完整攻略: 1. 介绍 Node.js 作为一个单线程的运行环境,它主要通过异步 IO 和事件驱动来实现多任务并发处理。但是,Node.js 还提供了一种利用子线程来执行 CPU 密集型任务的方法,这就是利用 Node.js 的 cluster 模块或第三方库如 pm2 来创建子进程。 但是,当…

    node js 2023年6月8日
    00
  • 推荐一个基于Node.js的表单验证库

    推荐一个基于Node.js的表单验证库: 1. 简介 在Node.js中进行表单验证,可以使用formidable、express-validator等库,这里推荐使用Joi。 Joi是一个可扩展、强大且友好的对象模式验证器,旨在处理有关任何对象的验证需求。它提供了清晰的API,内置了15多个验证类型,支持异步验证、自定义验证和国际化等功能,支持对复杂对象的…

    node js 2023年6月8日
    00
  • Node.js 回调函数实例详解

    下面我将为你讲解Node.js回调函数的实例详解攻略。整个攻略将分为以下几个部分: Node.js回调函数的概念和作用 回调函数的常见用法 回调函数的实例应用及示例代码 回调函数的应用注意事项 总结 1. Node.js回调函数的概念和作用 回调函数是Node.js中一个非常重要的概念。在Node.js中,回调函数通常是异步函数的最后一个参数,用于处理异步操…

    node js 2023年6月8日
    00
  • 详解NodeJs支付宝移动支付签名及验签

    下面是详解NodeJs支付宝移动支付签名及验签的完整攻略: 1. NodeJs中使用支付宝移动支付签名及验签 1.1. 签名 在支付宝移动支付中,签名是用于防止数据篡改的重要手段。在NodeJs中,使用以下代码可生成签名: const crypto = require(‘crypto’); function getSign(params, privateKe…

    node js 2023年6月8日
    00
  • IntellJ idea使用FileWatch实时编译less文件的方法

    IntelliJ IDEA 是开发人员常用的一款IDE。我们可以通过使用FileWath实时编译LESS文件,来加速我们的开发工作。下面是使用FileWatch实时编译LESS文件的步骤方法: 步骤1:创建一个LESS文件 首先,我们需要创建一个新的LESS文件。可以通过右键点击项目根目录,选择New -> File ->LESS File,然后…

    node js 2023年6月8日
    00
  • ES6新特性:使用export和import实现模块化详解

    下面我将为你详细讲解如何使用 export 和 import 实现 JavaScript 模块化。首先,我们需要了解 ES6 新特性中的模块化规范。 ES6 新特性:模块化规范 ES6 引入了一种新的模块化规范,不再依赖于传统的全局命名空间,而是将功能划分为一个个独立的模块,通过 export 导出模块中的功能,通过 import 引入其他模块的功能。这样可…

    node js 2023年6月8日
    00
  • 深入nodejs中流(stream)的理解

    理解 Node.js 中的流(stream)非常重要,因为在处理大量数据或网络流时,流是一种高效而可靠的方式。本文将深入介绍 Node.js 中的流概念和使用方法,包括流的类型、创建和使用流、以及流的事件和操作。 流的类型 在 Node.js 中,流可以分为四类: 可读流(Readable Stream):从源头读取数据。 可写流(Writable Stre…

    node js 2023年6月8日
    00
  • Node.js重新刷新session过期时间的方法

    Node.js中重新刷新session过期时间的方法具体分为两种: 1. 在中间件中增加session刷新操作 在使用express-session中间件时,可以使用一个名为”rolling”的配置项来自动刷新session过期时间,当设置为true时,每次用户请求时都会重置过期时间为原过期时间加上最大过期时间(maxAge),具体过程如下: const s…

    node js 2023年6月8日
    00
合作推广
合作推广
分享本页
返回顶部