当前位置: 首页 > article >正文

使用 `xlsx` 库读取和写入 Excel 文件

1. 环境准备

首先,确保你已经安装了 Node.js 和 npm(Node 包管理器)。如果还没有安装,可以从 Node.js 官方网站 下载并安装最新版本。

接下来,创建一个新的项目目录,并初始化一个新的 Node.js 项目:

mkdir excel-demo
cd excel-demo
npm init -y

2. 安装依赖

我们将使用 xlsx 库来处理 Excel 文件。通过以下命令安装 xlsx

npm install xlsx

3. 创建读取和写入 Excel 文件的脚本

3.1 读取 Excel 文件

下面是一个简单的示例脚本,展示如何读取 Excel 文件中的数据。

const xlsx = require('xlsx');

// 读取Excel文件
function readExcel(filePath) {
    // 加载工作簿
    const workbook = xlsx.readFile(filePath);

    // 获取第一个工作表的名字
    const sheetName = workbook.SheetNames[0];

    // 获取工作表
    const worksheet = workbook.Sheets[sheetName];

    // 将工作表转换为JSON格式
    const jsonData = xlsx.utils.sheet_to_json(worksheet, { header: 1 });

    console.log('Excel Data:');
    console.log(jsonData);
}

// 示例:读取当前目录下的example.xlsx文件
readExcel('./example.xlsx');
3.2 写入 Excel 文件

下面是一个简单的示例脚本,展示如何写入数据到新的 Excel 文件。

const xlsx = require('xlsx');

// 写入Excel文件
function writeExcel(data, filePath) {
    // 创建一个新的工作簿
    const workbook = xlsx.utils.book_new();

    // 将数据转换为工作表
    const worksheet = xlsx.utils.json_to_sheet(data);

    // 将工作表添加到工作簿
    xlsx.utils.book_append_sheet(workbook, worksheet, 'Sheet1');

    // 将工作簿保存为Excel文件
    xlsx.writeFile(workbook, filePath);

    console.log(`Data has been written to ${filePath}`);
}

// 示例数据
const data = [
    { name: 'John', age: 30, city: 'New York' },
    { name: 'Anna', age: 25, city: 'London' },
    { name: 'Mike', age: 32, city: 'San Francisco' }
];

// 示例:写入当前目录下的output.xlsx文件
writeExcel(data, './output.xlsx');

4. 完整示例

下面是一个完整的示例,展示了如何读取一个 Excel 文件,并将其内容写入到另一个 Excel 文件中。

const xlsx = require('xlsx');

// 读取Excel文件
function readExcel(filePath) {
    // 加载工作簿
    const workbook = xlsx.readFile(filePath);

    // 获取第一个工作表的名字
    const sheetName = workbook.SheetNames[0];

    // 获取工作表
    const worksheet = workbook.Sheets[sheetName];

    // 将工作表转换为JSON格式
    const jsonData = xlsx.utils.sheet_to_json(worksheet, { header: 1 });

    return jsonData;
}

// 写入Excel文件
function writeExcel(data, filePath) {
    // 创建一个新的工作簿
    const workbook = xlsx.utils.book_new();

    // 将数据转换为工作表
    const worksheet = xlsx.utils.json_to_sheet(data);

    // 将工作表添加到工作簿
    xlsx.utils.book_append_sheet(workbook, worksheet, 'Sheet1');

    // 将工作簿保存为Excel文件
    xlsx.writeFile(workbook, filePath);

    console.log(`Data has been written to ${filePath}`);
}

// 示例:读取当前目录下的example.xlsx文件
const inputFilePath = './example.xlsx';
const outputFilePath = './output.xlsx';

// 读取Excel文件中的数据
const excelData = readExcel(inputFilePath);

// 将数据写入到新的Excel文件
writeExcel(excelData, outputFilePath);

5. 运行脚本

确保你的项目目录中有一个名为 example.xlsx 的 Excel 文件,然后运行以下命令来执行脚本:

node your_script_name.js

这将读取 example.xlsx 文件的内容,并将其写入到 output.xlsx 文件中。

6. 处理复杂的数据结构

如果你需要处理更复杂的数据结构,比如多张工作表或带有特定格式的数据,可以参考 xlsx 库的文档,它提供了丰富的 API 来满足各种需求。

例如,读取多个工作表:

const xlsx = require('xlsx');

function readAllSheets(filePath) {
    const workbook = xlsx.readFile(filePath);
    const allSheets = {};

    workbook.SheetNames.forEach(sheetName => {
        const worksheet = workbook.Sheets[sheetName];
        const jsonData = xlsx.utils.sheet_to_json(worksheet, { header: 1 });
        allSheets[sheetName] = jsonData;
    });

    return allSheets;
}

const allSheets = readAllSheets('./example.xlsx');
console.log(allSheets);

7. 总结

通过使用 xlsx 库,我们可以轻松地在 Node.js 中读取和写入 Excel 文件。这个库不仅支持基本的读写操作,还提供了许多高级功能,如处理复杂的表格结构、格式化数据等。希望这篇文章能帮助你快速上手,并在实际项目中应用这些技术。

如果你有任何问题或需要进一步的帮助,请随时提问!


http://www.kler.cn/a/590837.html

相关文章:

  • 【愚公系列】《高效使用DeepSeek》014-行程计划
  • Java实现字符串大写字母转小写的多种方法及优化策略
  • 第29周 面试题精讲(1)
  • 《论语别裁》第01章 学而(29) 《三国演义》的幕后功劳
  • 【计算机视觉】工业表计读数(2)--表计检测
  • Spring Cloud Gateway 使用ribbon以及nacos实现灰度发布
  • 大语言模型-2.1-Transformer架构及详细配置
  • ubuntu安装NVIDIA显卡驱动及CUDA环境
  • DICOM医学影像数据访问控制与身份验证技术应用的重要性及其实现方法详解
  • 【AI学习从零至壹】Pytorch神经⽹络
  • 文件管理系统
  • tf1.x和tf2.x在使用上的区别和联系是什么
  • 蓝桥杯练习day1:拆分数位-四位数字的最小和
  • [模拟实现]unique_ptr、shared_ptr智能指针--C++版本的代码实现
  • 【自学笔记】MongoDB基础知识点总览-持续更新
  • 一条SQL在mysql数据库中经历的过程
  • STM32——基本定时器
  • 相机光学(四十七)——相纸材质
  • 神经网络量化3-全连接层实现量化
  • 相机标定之DLT算法学习