返回博客

JS 解析 xlsx 文件

本文介绍了如何使用 JavaScript 解析 xlsx 文件。xlsx 文件本质上是一个压缩包,包含多个 XML 文件,这些文件存储了 Excel 数据。文章讲解了如何使用 JSZip 和 xml2js 包解析 xlsx 文件,并提供了代码示例。

Mt.r
|

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)
    })
  }

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