您的位置:

使用Node.js读取Excel文件的完整指南

Excel表格是一种广泛使用的数据交换格式,它非常适合用于存储和管理大量的数据。在日常工作中,我们经常需要从Excel表格中读取数据并进行处理。在这篇文章中,我们将介绍使用Node.js读取Excel文件的完整指南,从读取文件顺序到具体的代码实现,以帮助你快速地处理Excel数据。

一、Node.js读取文件顺序

在使用Node.js读取Excel文件之前,首先我们需要了解Node.js对文件操作的基础知识,例如如何打开、读取和关闭文件等操作。Node.js中主要使用fs模块来完成文件操作,包括读取、写入、创建、删除文件等功能。下面是一些基本的fs模块操作示例:

const fs = require('fs');

//异步读取文件
fs.readFile('file.txt', 'utf8', function(err, data) {
  if (err) throw err;
  console.log(data);
});

//同步读取文件
let data = fs.readFileSync('file.txt', 'utf8');

//写入文件
fs.writeFile('file.txt', 'Hello World!', function(err) {
  if (err) throw err;
  console.log('File is saved successfully!');
});

了解了基本的文件操作后,我们就可以开始使用Node.js读取Excel文件了。

二、Node.js读取Excel

Excel文件通常是二进制文件或XML格式文件,如果我们需要读取其中的数据,就需要使用一些专门的库。以下是使用Node.js读取Excel文件的两种方法:

1. 使用exceljs库读取Excel文件

exceljs是一个用于读写Excel文件的Node.js模块,它支持在浏览器和Node.js中同时使用,并能够处理大量的数据。使用exceljs读取Excel文件的步骤如下:

步骤1:安装exceljs模块

npm install exceljs

步骤2:打开Excel文件

const ExcelJS = require('exceljs');

const workbook = new ExcelJS.Workbook();
workbook.xlsx.readFile('sample.xlsx')
  .then(function() {
    console.log('Excel file has been opened successfully!');
  });

步骤3:读取Excel数据

const worksheet = workbook.getWorksheet(1);

worksheet.eachRow(function(row, rowNumber) {
  console.log("Row " + rowNumber + " = " + JSON.stringify(row.values));
});

2. 使用xlsx库读取Excel文件

xlsx是一个流行的用于读写Excel文件的Node.js模块,它实现了一些 Excel 文件格式的解析器。在使用这个库之前,需要先安装以下依赖模块:

npm install xlsx
npm install file-saver

使用xlsx读取Excel文件的步骤如下:

步骤1:加载xlsx模块并读取Excel文件

const XLSX = require("xlsx");

const workbook = XLSX.readFile("sample.xlsx");

步骤2:获取工作表数据

const worksheet = workbook.Sheets[workbook.SheetNames[0]];
const data = XLSX.utils.sheet_to_json(worksheet);
console.log("Data from Excel Sheet=", data);

三、Node.js读取CSV文件

CSV文件是一种常见的纯文本文件格式,也非常适合用于存储和管理大量的数据。在Node.js中,我们可以使用csv-parser模块轻松地读取CSV文件,并将其转换为JavaScript对象。以下是读取CSV文件的步骤:

步骤1:安装csv-parser模块

npm install csv-parser

步骤2:读取CSV文件并将数据转换为JavaScript对象

const fs = require('fs');
const csv = require('csv-parser');

const results = [];

fs.createReadStream('data.csv')
  .pipe(csv())
  .on('data', (data) => results.push(data))
  .on('end', () => {
    console.log("Results=", results);
  });

四、Node.js fs读取文件

Node.js中的fs模块提供了许多功能强大的方法,用于读取、写入、创建、删除文件等操作。以下是使用fs模块读取文件的步骤:

步骤1:加载fs模块并读取文件

const fs = require('fs');

fs.readFile('sample.txt', 'utf8', function(err, data) {
  if (err) throw err;
  console.log(data);
});

五、Node.js读取JSON文件

JSON文件是一种轻量级的数据交换格式,易于阅读和编写。在Node.js中,可以直接使用fs模块读取JSON文件,并将其转换为JavaScript对象。以下是读取JSON文件的步骤:

步骤1:加载fs模块并读取JSON文件

const fs = require('fs');

fs.readFile('data.json', 'utf8', function(err, data) {
  if (err) throw err;
  const jsonData = JSON.parse(data);
  console.log("Data from JSON file=", jsonData);
});

六、Node.js读取XML文件

XML文件是一种常见的数据交换格式,它是一种简单灵活的文本格式,易于理解和处理。在Node.js中,我们可以使用xml2js模块轻松地读取XML文件,并将其转换为JavaScript对象。以下是读取XML文件的步骤:

步骤1:安装xml2js模块

npm install xml2js

步骤2:读取XML文件并将其转换为JavaScript对象

const fs = require('fs');
const xml2js = require('xml2js');

fs.readFile('data.xml', function(err, data) {
  if (err) throw err;
  xml2js.parseString(data, function(error, result) {
    if (error) throw error;
    const jsonData = JSON.stringify(result);
    console.log("Data from XML file=", jsonData);
  });
});

七、Node.js读取本地文件

在Node.js中,我们可以轻松读取本地文件。只需要使用fs模块加载本地文件并进行读取操作即可。以下是读取文件的步骤:

步骤1:加载fs模块并读取本地文件

const fs = require("fs");

const buffer = fs.readFileSync("./sample.txt");
const data = buffer.toString();
console.log("Data from local file=", data);

八、Node.js处理Excel

Excel文件中的数据通常需要进行加工和处理,以满足特定的需求。在Node.js中,我们可以使用exceljs和xlsx这两个模块对Excel进行处理。以下是使用exceljs和xlsx对Excel进行操作的示例:

使用exceljs删除工作表中特定列

const ExcelJS = require('exceljs');

const workbook = new ExcelJS.Workbook();
workbook.xlsx.readFile('sample.xlsx')
  .then(function() {
    const worksheet = workbook.getWorksheet(1);

    worksheet.eachRow(function(row, rowNumber) {
      row.eachCell(function(cell, colNumber) {
        if (colNumber === 1) {
          cell.value = null;
        }
      });
    });
    
    workbook.xlsx.writeFile('sample_new.xlsx')
      .then(function() {
        console.log('Excel file has been written successfully!');
      });
  });

使用xlsx插入数据到工作表中

const XLSX = require("xlsx");

const workbook = XLSX.readFile("sample.xlsx");
const worksheet = workbook.Sheets[workbook.SheetNames[0]];
const data = XLSX.utils.sheet_to_json(worksheet);

const newData = [
  {Name: "John", Age: 25},
  {Name: "Mary", Age: 30},
  {Name: "David", Age: 35}
];

newData.forEach((item, index) => {
  worksheet[XLSX.utils.encode_cell({c: 0, r: data.length + index + 2})] = {v: item.Name};
  worksheet[XLSX.utils.encode_cell({c: 1, r: data.length + index + 2})] = {v: item.Age};
});

const newFile = XLSX.utils.book_new();
XLSX.utils.book_append_sheet(newFile, worksheet, "Sheet1");
XLSX.writeFile(newFile, "sample_new.xlsx");

以上就是使用Node.js读取Excel文件的完整指南,通过上述示例,你已经了解了使用Node.js读取不同类型的文件的方法。希望这篇文章能够帮助你更好地处理Excel数据。