Nodejs 有没处理xls,xlsx的包?

Nodejs 有没处理xls,xlsx的包?

工作中要处理大量的xls和xlsx,搜了下,貌似nodejs没这方面的包,如果有类似pywin的那种,就爽了~~~

9 回复

当然可以!在 Node.js 中处理 Excel 文件(如 .xls.xlsx)确实有一些非常强大的库。其中最流行的包括 xlsxexceljs。下面我会分别介绍这两个库,并提供一些简单的示例代码来帮助你入门。

1. 使用 xlsx

xlsx 是一个非常强大且广泛使用的库,用于读取和写入 .xlsx 文件。虽然它不直接支持 .xls 文件,但你可以使用其他工具(如 xls 库)来处理 .xls 文件。

安装

npm install xlsx

示例代码

const XLSX = require('xlsx');

// 读取文件
const workbook = XLSX.readFile('example.xlsx');

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

// 获取工作表数据
const worksheet = workbook.Sheets[sheetName];
const data = XLSX.utils.sheet_to_json(worksheet);

console.log(data);

2. 使用 exceljs

exceljs 是另一个强大的库,支持 .xlsx 文件,并且提供了更丰富的功能,如样式、公式等。

安装

npm install exceljs

示例代码

const ExcelJS = require('exceljs');

// 创建一个新的工作簿
const workbook = new ExcelJS.Workbook();
workbook.creator = 'Me';
workbook.created = new Date();

// 添加一个工作表
const worksheet = workbook.addWorksheet('Sheet 1');

// 添加一些数据
worksheet.columns = [
    { header: 'ID', key: 'id', width: 10 },
    { header: 'Name', key: 'name', width: 32 },
    { header: 'Age', key: 'age', width: 10 }
];

worksheet.addRow({ id: 1, name: 'John Doe', age: 25 });
worksheet.addRow({ id: 2, name: 'Jane Doe', age: 24 });

// 写入文件
workbook.xlsx.writeFile('output.xlsx')
    .then(() => {
        console.log('File saved!');
    })
    .catch(err => {
        console.error(err);
    });

总结

以上两种方法都可以有效地处理 Excel 文件。xlsx 库更适合简单的读取和写入操作,而 exceljs 则提供了更多的功能和灵活性。希望这些示例代码能帮助你在 Node.js 中高效地处理 Excel 文件!


方法一, 另存为 csv 格式, 再用[node-csv-parser ][1]

[1]: https://github.com/wdavidw/node-csv-parser 自己分析

方法二, 用这个插件:node spreadsheet : this is a solution to read excel files in node js based on PHPExcel from phpexcel.codeplex.com 依赖php的,但总比没有强. https://github.com/shimondoodkin/node_spreadsheet

有没大牛写个类似pywin的nodewin工具~~~ 哈哈,我想写,但自认为没这功力~~

关注中。。。

用csv 怎么解决用execl打开乱码问题的呢??、

可用Excel的模板引擎 ejsExcel

在 Node.js 中,你可以使用一些库来处理 Excel 文件(如 .xls.xlsx)。比较流行的库包括 xlsxexceljs。这些库可以让你读取、写入和操作 Excel 文件。

示例:使用 xlsx

  1. 首先,你需要安装 xlsx 库:

    npm install xlsx
    
  2. 示例代码:

    const XLSX = require('xlsx');
    
    // 读取文件
    const workbook = XLSX.readFile('example.xlsx');
    const sheetName = workbook.SheetNames[0];
    const worksheet = workbook.Sheets[sheetName];
    
    // 将工作表转换为 JSON 格式
    const data = XLSX.utils.sheet_to_json(worksheet);
    console.log(data);
    
    // 写入数据到新的 Excel 文件
    const newWorksheet = XLSX.utils.json_to_sheet(data);
    const newWorkbook = {
      SheetNames: ['Sheet1'],
      Sheets: {
        'Sheet1': newWorksheet
      }
    };
    XLSX.writeFile(newWorkbook, 'new_example.xlsx');
    

示例:使用 exceljs

  1. 首先,安装 exceljs 库:

    npm install exceljs
    
  2. 示例代码:

    const ExcelJS = require('exceljs');
    
    // 创建一个新的工作簿和工作表
    const workbook = new ExcelJS.Workbook();
    const worksheet = workbook.addWorksheet('Sheet 1');
    
    // 添加一些数据
    worksheet.columns = [
      { header: 'ID', key: 'id', width: 10 },
      { header: 'Name', key: 'name', width: 32 }
    ];
    
    worksheet.addRow({ id: 1, name: 'John' });
    worksheet.addRow({ id: 2, name: 'Jane' });
    
    // 读取现有的 Excel 文件
    workbook.xlsx.readFile('example.xlsx')
      .then(() => {
        // 获取第一个工作表
        const firstSheet = workbook.getWorksheet(1);
        console.log(firstSheet);
      });
    
    // 写入新文件
    workbook.xlsx.writeFile('new_example.xlsx');
    

这两种库都可以很好地处理 Excel 文件,选择哪一个取决于你的具体需求和个人偏好。

回到顶部