xlsx 文件的本质
xlsx 文件是一个压缩包,里面包含了很多 xml 文件,这些 xml 文件就是 excel 的数据。
解析 xlsx 文件
修改 xlsx 文件的后缀为 zip,解压后可以看到里面的文件结构如下:
├── _rels
│ └── .rels
├── docProps
│ ├── app.xml
│ ├── core.xml
│ └── thumbnail.jpeg
├── xl
│ ├── _rels
│ │ └── workbook.xml.rels
│ ├── workbook.xml
│ ├── worksheets
│ │ └── sheet1.xml
│ └── sharedStrings.xml
└── [Content_Types].xml
JS 解析 xlsx 文件
用下面这两个包基本就可以解析 xlsx 文件了。
var JSZip = require('jszip')
var xml2js = require('xml2js')
解析 xlsx 文件的代码如下:
read: function (opts, cb) {
var me = this
var t = me.zip.file(opts.file).asText()
var parser = new xml2js.Parser({ explicitArray: false })
parser.parseString(t, function (err, o) {
if (err) {
return new VError(err, 'getXML')
}
cb(err, o)
})
}