node 实时监控本地Excel文件并读取

26 阅读1分钟

1. 安装必要的库

首先,你需要安装 chokidarxlsx 库。你可以在你的项目目录中运行以下命令来安装它们:

npm install chokidar xlsx

2. 编写监控和读取文件的代码

创建一个新的 JavaScript 文件(例如 monitorExcel.js),并添加以下代码:

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

// 监控的Excel文件路径
const filePath = path.join(__dirname, 'your-file.xlsx');

// 读取Excel文件内容的函数
function readExcelFile(file) {
    const workbook = xlsx.readFile(file);
    const sheetName = workbook.SheetNames[0]; // 获取第一个工作表的名称
    const sheet = workbook.Sheets[sheetName];
    
    // 将工作表内容转换为JSON
    const data = xlsx.utils.sheet_to_json(sheet);
    console.log(data);
}

// 初始化chokidar监控器
const watcher = chokidar.watch(filePath, {
    persistent: true
});

// 监听文件变化事件
watcher.on('change', (path) => {
    console.log(`File ${path} has been changed`);
    readExcelFile(filePath);
});

// 初始读取Excel文件内容
readExcelFile(filePath);

console.log(`Watching for changes in ${filePath}`);

3. 运行代码

在终端中运行以下命令来启动你的脚本:

node monitorExcel.js
  • chokidar.watch(filePath, { persistent: true }): 初始化一个 chokidar 监控器,监控指定的 Excel 文件。
  • watcher.on('change', (path) => {...}): 监听文件变化事件,当文件发生变化时,调用 readExcelFile 函数读取文件内容。
  • readExcelFile(file): 使用 xlsx 库读取 Excel 文件并将其内容转换为 JSON 格式,然后打印到控制台。

这样,当你修改并保存 your-file.xlsx 文件时,脚本会实时检测到变化并读取文件内容。