#yyds干货盘点#JS 解析 excel 文件

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了#yyds干货盘点#JS 解析 excel 文件相关的知识,希望对你有一定的参考价值。

JS解析excel文件分为如下几步:

  1. 使用 ​​js​​ 解压缩 ​​excel​​ 文件
  2. 获取到其中的 ​​sheet​​ 文件内容,然后将 ​​xml​​ 数据解析出来
  3. 将数据转换成我们想要的形状

ZIP 解压

关于 ​​JS​​​ 如何实现 ​​ZIP​​​ 解压的,上一篇文章也有提到,这里我们就不细说,直接使用 ​​jszip​​ 搞定:

document.querySelector(#file).addEventListener(change, async e => 
const file = e.target.files[0];
if (!file) return;
const zip = await JSZip.loadAsync(file);
const sheetXML = await zip.files[xl/worksheets/sheet1.xml].async(string);
);
复制代码

快速搞定,现在 ​​sheetXML​​ 就是我们刚刚看到的 ​​sheet1.xml​​ 中的数据了。

XML 解析

然后我们即可解析 ​​XML​​​ 内容将其中数据取出,​​xml​​​ 解析原理很简单,和 ​html parse​​ 一样,了解原理咱就直接随便搞个开源库帮忙搞定:

import convert from xml-js;

const result = convert.xml2json(sheetXML, compact: true, spaces: 4 );
复制代码

然后我们就得到了这样一串 ​​JSON​​(删除了部分内容):


"_declaration":
"_attributes":
,
"worksheet":
"_attributes": ,
"sheetPr": ,
"dimension":
"_attributes":
"ref": "A1:C7"

,
"sheetData":
"row": [

"_attributes":
"r": "1",
"spans": "1:3"
,
"c": [

"_attributes":
"r": "A1"
,
"v":
"_text": "1"

,

"_attributes":
"r": "C1"
,
"v":
"_text": "2"


]
,

"_attributes":
"r": "7",
"spans": "1:3"
,
"c": [

"_attributes":
"r": "A7"
,
"v":
"_text": "1"

,

"_attributes":
"r": "C7"
,
"v":
"_text": "2"


]

]


接下来,我们只需要将 ​sheetData​ 中的数据取出,然后按照内部的属性生成自己想要的数据格式即可。

以上是关于#yyds干货盘点#JS 解析 excel 文件的主要内容,如果未能解决你的问题,请参考以下文章

#yyds干货盘点# NPOI在Excel中的简单用法汇总

#yyds干货盘点# 在120篇系列专栏中,才能学会 python beautifulsoup4 模块,7000字博客+爬第九工场网

#yyds干货盘点# C#使用NPOI导出Excel文件

#yyds干货盘点#parseInt怪异行为

#yyds干货盘点#Hyperf结合PhpOffice/PhpSpreadsheet实现Excel&CSV文件导出导入

#yyds干货盘点#js截取文件后缀名