如何解析Javascript/HTML 5中的Excel文件

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (41)

我能够通过FileReader但是它输出文本和奇怪的字符。我需要阅读xls按行顺序归档,读取每一列中的数据,并将其转换为JSON。

有人知道如何逐行读取XLS文件吗?

任何帮助都将不胜感激。

提问于
用户回答回答于

下面的函数将Excel表(xlsx格式)数据转换为JSON。

<script src="https://cdnjs.cloudflare.com/ajax/libs/xlsx/0.8.0/xlsx.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/xlsx/0.8.0/jszip.js"></script>
<script>
var ExcelToJSON = function() {

  this.parseExcel = function(file) {
    var reader = new FileReader();

    reader.onload = function(e) {
      var data = e.target.result();
      var workbook = XLSX.read(data, {
        type: 'binary'
      });

      workbook.SheetNames.forEach(function(sheetName) {
        // Here is your object
        var XL_row_object = XLSX.utils.sheet_to_row_object_array(workbook.Sheets[sheetName]);
        var json_object = JSON.stringify(XL_row_object);
        console.log(json_object);

      })

    };

    reader.onerror = function(ex) {
      console.log(ex);
    };

    reader.readAsBinaryString(file);
  };
};
</script>

用户回答回答于

这是一个老问题,但我应该指出,从javascript解析XLS文件的一般任务是繁琐和困难的,但并非不可能。

我有用纯JS实现的基本解析器:

这两个页面都是HTML 5文件API驱动的XLS/xlsx解析器(您可以拖放文件,它将在逗号分隔的列表中打印出单元格中的数据)。还可以生成JSON对象(假设第一行是标题行)。

扫码关注云+社区