#yyds干货盘点#JS 解析 excel 文件
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了#yyds干货盘点#JS 解析 excel 文件相关的知识,希望对你有一定的参考价值。
JS解析excel文件分为如下几步:
- 使用
js
解压缩 excel
文件 - 获取到其中的
sheet
文件内容,然后将 xml
数据解析出来 - 将数据转换成我们想要的形状
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干货盘点# 在120篇系列专栏中,才能学会 python beautifulsoup4 模块,7000字博客+爬第九工场网