DEV Community · Show DEV8/17 14:1458

浏览器中无库读取xlsx:手写解析器实践

Reading .xlsx in the browser without a spreadsheet library

阅读原文
开发者分享在浏览器中不依赖电子表格库读取.xlsx文件的经验。其网站需将银行CSV转换为QuickBooks格式,强调隐私,通过CSP禁止网络请求。为支持Excel,作者放弃SheetJS,因不想引入大型第三方依赖。.xlsx实为ZIP含XML,需解压、解压缩和解析XML。浏览器原生支持DecompressionStream('deflate-raw'),ZIP目录解析约40行,XML用手写扫描器。难点在日期处理:Excel日期为数字,需结合styles.xml判断格式,且存在1900闰年bug。作者强调两种错误模式均无报错,需谨慎处理。