21xrx.com
2024-12-22 22:14:39 Sunday
登录
文章检索 我的文章 写文章
Node.js读取Excel表格的方法
2023-06-29 07:15:17 深夜i     --     --
Node js Excel表格 读取方法

Node.js是一种流行的JavaScript运行时环境,广泛用于Web应用程序和服务端开发。它提供了非阻塞I/O、事件驱动的编程模型,使得开发者能够更快、更高效地开发Web应用。在Node.js中,读取Excel表格是一项常见的任务。以下就介绍几种常用的读取Excel表格的方法。

1. 使用ExcelJS模块

ExcelJS是一个开源的Node.js模块,支持读取、写入以及生成Excel文件。可以通过npm安装ExcelJS模块,并通过下列代码示例来读取Excel文件:

Script

const Excel = require('exceljs');

const workbook = new Excel.Workbook();

workbook.xlsx.readFile('path/to/file.xlsx')

 .then(function () {

  const worksheet = workbook.getWorksheet(1);

  worksheet.eachRow({ includeEmpty: true }, function(row, rowNumber) {

   console.log(`Row ${rowNumber} = ${JSON.stringify(row.values)}`);

  });

 });

该示例通过ExcelJS模块来读取指定文件(file.xlsx)中的数据,并按行打印出每行数据。需要注意的是,在使用ExcelJS模块前需要通过npm进行安装。

2. 使用xlsx模块

另一种常用的读取Excel文件的方式是使用xlsx模块。该模块可以读取各种Office Open XML格式的文件,包括多种版本的Excel文件。以下是通过该模块读取Excel文件的示例:

Script

const XLSX = require('xlsx');

const workbook = XLSX.readFile('path/to/file.xlsx');

const worksheet = workbook.Sheets['Sheet1'];

const rows = XLSX.utils.sheet_to_json(worksheet, { header: 1 });

console.log(rows);

该示例先通过XLSX模块读取指定文件(file.xlsx)中的数据,并将第一个工作表转换为JSON格式,最后将整个结果打印输出。需要注意的是,XLSX模块需要先通过npm进行安装。

3. 使用excel4node模块

excel4node是一个可以用于创建Excel文件的Node.js模块。除了创建Excel文件,它还可以读取现有的Excel文件并将数据导出。以下是通过excel4node模块读取Excel文件的示例:

Script

const xl = require('excel4node');

const wb = new xl.Workbook();

const path = 'path/to/file.xlsx';

const ws = wb.addWorksheet('Sheet1');

wb.xlsx.readFile(path).then(() => {

 const rows = [];

 const headerRow = [];

 ws.eachRow(function(row, rowIndex) {

  const currentRow = [];

  row.eachCell(function(cell, colIndex) {

   currentRow.push(cell.value);

  });

  if (rowIndex === 1) {

   headerRow.push(...currentRow);

  } else {

   rows.push(currentRow);

  }

 });

 console.log(headerRow, rows);

});

该示例通过excel4node模块读取指定文件(file.xlsx)中的数据,并将数据转换为行数据(rows)和表头数据(headerRow),最后将整个结果打印输出。

综上所述,Node.js读取Excel表格的方法有很多种。以上介绍的三种方法都是常见的方法,对于不同的需求和实际场景,可以灵活选择使用相应的模块和方法。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复