node . js利用js-xlsx处理Excel文件的方法详解

  


  

  

本文介绍用节点。js中的js-xlsx库来处理Excel文件。
  

  

js-xlsx库是目前Github上星数量最多的处理Excel的库,功能强大,但上手难度稍大。文档有些乱,不适合快速上手。
  

  

本文对js-xlsx库进行一定的总结,并提供几个实用的例子供读者测试,学习,交流。

  


  

        美元npm安装xlsx      


  

  

在使用这个库之前,先介绍库中的一些概念。

  
      <李>工作簿对象,指的是整份Excel文档。我们在使用js-xlsx读取Excel文档之后就会获得工作簿对象。   <李>工作表对象,指的是Excel文档中的表。我们知道一份Excel文档中可以包含很多张表,而每张表对应的就是工作表对象。   <李>细胞对象,指的就是工作表中的单元格,一个单元格就是一个细胞对象。
      李   
  

它们的关系如下:

     //工作簿   {   SheetNames:‘sheet1’,‘sheet2’,   表:{//工作表   “sheet1”: {//单元格   “A1”: {…},//单元格   A2: {…},   …   },//工作表   “sheet2”: {//单元格   “A1”: {…},//单元格   A2: {…},   …   }   }   }      


  

  

<>强基本用法
  

  
      <李>用<代码> XLSX。readFile>   <李>用<代码>工作簿。SheetNames 获取表名李   <李>用<代码>工作簿。表[xxx] 通过表名获取表格李   <李>按自己的需求去处理表格李   <李>生成新Excel的文件
      李   
  

<强>具体用法
  

  

读取Excel文件

        从“进口XLSX XLSX ';   const工作簿=XLSX.readFile (someExcel。 xlsx’,选择);      

获取Excel文件中的表

     //获取Excel中所有表名   const sheetNames=workbook.SheetNames;//返回[' sheet1 ', ' sheet2 ']//根据表名获取对应某张表   const工作表=workbook.Sheets [sheetNames [0]],      

通过<代码>工作表(地址)来操作表格,以!开头的关键是特殊的字段。

     //获取A1单元格对象   让a1=工作表(“a1”);//返回{v:‘你好’,老师:“年代”,…}//获取A1中的值   a1。v//返回‘你好’//获取表的有效范围   工作表[' !ref ']//返回的A1: B20”   工作表[' !范围']//返回范围对象,{s: {0, c: 0}, e: {r: 100 c: 2}}//获取合并过的单元格   工作表[' !合并']//返回一个包含范围对象的列表,[{s: {0, c: 0}, c: {2, c: 1}}]      


  

  

解析Excel生成JSON

  

提示事实上,你可以直接通过<代码> XLSX.utils.sheet_to_json(工作表)获得同样的结果
  

  

        const header={};   常量数据=https://www.yisu.com/zixun/[];   const键=种(工作表);   键//过滤以!开头的关键   .filter (k=> k [0] !==!)//遍历所有单元格   .forEach (k=比;{//如A11中的一个   让坳=k。substring (0,1);//如A11中的11   让行=方法(k.substring (1));//当前单元格的值   让价值=https://www.yisu.com/zixun/worksheet [k] .v;//保存字段名   如果(行===1){   标题(col)=价值;   返回;   }//解析成JSON   如果数据(行)(!){   数据(行)={};   }   数据(行)[头[坳]]=价值;   });      console.log(数据);//[{'姓名:test1,“年龄”:20},{”姓名”:“test2”、“年龄”:10}…)      

<强>合并表格

  

步骤:   

      <李>读取多份表格李   <李>合并数组
      李   
  

提示:其实合并表格跟XLSX没什么关系,只是处理几个数组而已。

  

sheet1   

           id   的名字   年龄               1   test1   30.         2   test2   20.         3.   test3   18            

  

sheet2   

           id   国家   备注               1   中国   你好         2   美国   世界         3.   Unkonw   & # 63;& # 63;& # 63;            

node . js利用js-xlsx处理Excel文件的方法详解