0%

Js 如何解析 xlsx 文件

xlsx 文件的本质

xlsx 文件是一个压缩包,里面包含了很多 xml 文件,这些 xml 文件就是 excel 的数据。

解析 xlsx 文件

修改 xlsx 文件的后缀为 zip,解压后可以看到里面的文件结构如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
├── _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 文件了。

1
2
var JSZip = require('jszip')
var xml2js = require('xml2js')

解析 xlsx 文件的代码如下:

1
2
3
4
5
6
7
8
9
10
11
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)
})
}

还有其他的解析 xlsx 文件的包