zxkv-excel-json:XLS 解析
XLS 文件解析插件:zxkv-excel-json「👈 点击查看」
场景需求
前边文章已经对“XLSX 转 JSON”做了相应的处理,早期需求比较紧张,就优先考虑了目前主流的“xlsx”格式的 Excel 文件解析。但是投入使用后发现有一部分用户的操作系统偏老旧,他们办公处理文档还是基于早期的“office”办公软件进行工作的;为了支持“xls”文档的解析,寻找了好多方案进行处理;处理时不仅要考虑兼容性还要考虑插件包的内存大小、兼容性、使用是否便捷等一系列因素,最终采用“xlsx.js”来实现解析“xls”文件。 在处理 Demo 案例过程中发现,“xlsx.js”对“xlsx”格式文件和“xls”格式文件均支持,相对之前处理“xlsx”格式文件时,需要对文件流进行加载处理,具体方法可以参考如下代码案例。
功能实现
前端解析 Excel 文件是基于 sheetjs 的xlsx 包实现文件解析的,接下来是具体的实现步骤和注意事项「注:支持 xlsx 和 xls 及其它格式文件的解析」
- xlsx 使用文档-sheetjs
SheetJS 文档「👈 点击查看文档」
- 要读取的 XLS 文件源数据
- 转换数据「将解析生成的二维数组转换成后端所需的 JSON 数组对象,此处需要借助 “schema” 包进行解析处理」
- 数据转换只转数据体,所以 XLS 文件的标头无需处理,故在进行转换数据之前需将标头该一组数据移除掉
效果展示


分析总结
上述笔记是对 Excel 文件的 XLS 格式的文件进行解析处理的;对比 XLSX 文件的解析,XLS 格式的解析多了文件流读取这一步骤。XLSX 格式文件也可以用过上述方式来解析生成 JSON 格式的数据,已在实际开发中使用和验证。
若需整合支持 Excel 文件数据的解析,可以直接使用 “xlsx” 包进行解析,也可以使用 “read-excel-file” 包进行解析,两种方式均可,相对来说 “xlsx” 包支持的文件种类比较多些;“read-excel-file” 包比较小,仅支持 “xlsx” 一种数据格式文件的解析。可以根据自己开发过程中实际场景需求来选取符合自己要求的方案。