您的位置 首页 > 数码极客

「js如何读取xlsx」js如何读取本地文件!

上一篇: node.js 14 自动化工具 (爬虫) Selenium安装使用


nodejs excel操作

绝大部分编程语言都有Office文件的操作库,nodejs也不例外。而且nodejs的世界里,Excel操作模块还是比较多的,这就涉及到选择问题了。到底选哪个Excel操作模块?

Excel操作模块PK

让我们看一下npm包里面的各类Excel操作模块

  • ExcelJS

最近更新在4天前,也就是2020年3月份更新的。最新版本3.8.2。从版本维护,文件更新方面都是有保障的。每周的下载量为12万5797次,使用面也是比较广的。再来看文档方面,各类操作都有代码,关键的是有中文翻译的文档。应该说这是一个不错的选择。

  • Excel

最近更新在7个月之前,大概是2019年8月份。最新版本为1.0.1。每周的下载量为4410次。除了寥寥数行代码外,几乎没有什么文档。

  • node-xlsx

最近更新在1年前,大约是2019年初。最新版本 0.15.0。但是周下载量不错,达到了3万8千多次。文档方面也相对比较完备。应该说node-xlsx也是一个不错的选择。

  • SheetJS js-xlsx

最近更新在13天前,也是2020年3月份。最新版本0.15.6。每周的下载量达到了55万8千次,这个使用面是非常广泛了。文档也比较齐全。这是一个非常不错的选择。

  • ejsExcel

这是一款国人做的Excel操作模块。最近一次更新在4个月前,也就是2019年11月。最新版本为3.6.0。但是每周下载量是这几个模块中最低的,只有396次。

考虑到文档,中文,下载量,版本维护等,我选择使用ExcelJS来作为Excel文件操作的模块。

ExcelJS安装

使用命令:npm install exceljs --save

D:\Projects\nodejs\NodeDemo\excel>npm install exceljs --save npm WARN deprecated mkdirp@0.5.4: Legacy versions of mkdirp are no longer supported. Please update to mkdirp 1.x. (Note that the API surface has changed to use Promises in 1.x.) npm notice created a lockfile as . You should commit this file. npm WARN excel@1.0.0 No description npm WARN excel@1.0.0 No repository field. + exceljs@3.8.2 added 92 packages from 115 contributors and audited 256 packages in 45.139s 2 packages are looking for funding run `npm fund` for details found 0 vulnerabilities

ExcelJS 代码示例

  • 创建Workbook

首先需要引入exceljs模块,通过Excel.Workbook()来构建Workbook。

const Excel = require('exceljs') var workbook = new Excel.Workbook();
  • 设置Workbook属性
workbook.creator = 'Vincent'; workbook.lastModifiedBy = 'Vincent'; workbook.created = new Date(2020, 3, 28); workbook.modified = new Date(); workbook.lastPrinted = new Date(2020, 3, 28);
  • 添加Worksheet
workbook.addWorksheet('My Sheet')
  • 访问Worksheet

提供三种方法,可以通过遍历所有的worksheet,也可以通过worksheet名称或者id来访问。

//遍历所有worksheet workbook.eachSheet(function(worksheet, sheetId) { // ... }); //通过名称访问 var worksheet = workbook.getWorksheet('My Sheet'); //通过id访问 var worksheet = workbook.getWorksheet(1);
  • 行操作

添加行只需要调用addRow方法并传入数组即可。

work([1, 'Vincent', 18]); work([2, 'Tom', 25]);

运行结果

获取行信息,需要调用work(index).values方法。

var row = work(1).values;

该代码可以获取第一行的值,返回值为数组。

  • 列操作
//设定列 work = [ { header: 'Id', key: 'id', width: 10 }, { header: 'Name', key: 'name', width: 32 }, { header: 'D.O.B.', key: 'DOB', width: 10,} ]; //获取列 var idCol = work('id'); var nameCol = work('B'); var dobCol = work(3); //添加数组到列中 work(6).values = [1,2,3,4,5];
  • 单元格操作
//获取单元格 var cell = work('C3'); // 设定单元格value cell.value = 'Vincent' //合并单元格 work('A4:B5'); //获取单元格value work('B5').value //获取单元格注释 work('A1').note //设定单元格注释 work('A1').note='单元格注释'
  • 公式 Formula
//单元格公式以及计算值设定 work('A3').value = { formula: 'A1+A2', result: 7 };

注意,上面如果只是设定formula不设定result是不起作用的。经过实际测试,result可以不一定是百分百正确的计算值。当写入文件后,打开excel时,excel会自动通过公式计算并显示正确值。

  • 读取xlsx文件
// read from a file var workbook = new Excel.Workbook(); workbook.xl(filename) .then(function() { // use workbook });
  • 写入Excel文件
// write to a file var workbook = createAndFillWorkbook(); workbook.xl(filename) .then(function() { // done });

总体ExcelJS模块的API是比较丰富的,可以应对绝大部分Excel操作。并且文档相对比较详细。

如果朋友们有什么问题,欢迎留言讨论。

责任编辑: 鲁达

1.内容基于多重复合算法人工智能语言模型创作,旨在以深度学习研究为目的传播信息知识,内容观点与本网站无关,反馈举报请
2.仅供读者参考,本网站未对该内容进行证实,对其原创性、真实性、完整性、及时性不作任何保证;
3.本站属于非营利性站点无毒无广告,请读者放心使用!

“js如何读取xlsx,js如何读取本地文件,js如何读取excel文件,js如何读取文件内容”边界阅读