首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在Javascript/HTML5中解析Excel (XLS)文件

如何在Javascript/HTML5中解析Excel (XLS)文件
EN

Stack Overflow用户
提问于 2011-11-23 15:08:45
回答 13查看 460.2K关注 0票数 167

我可以通过以下方式读取Excel文件

但是它输出文本和奇怪的字符。我需要阅读

文件行方式,读取每一列中的数据并将其转换为JSON。

如何逐行读取xls文件?

EN

回答 13

Stack Overflow用户

回答已采纳

发布于 2016-05-07 09:46:53

下面的函数将Excel工作表(XLSX格式)数据转换为JSON。您可以将promise添加到函数中。

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

下面的post包含XLS格式的代码

Excel转JSON javascript代码?

票数 138
EN

Stack Overflow用户

发布于 2013-06-23 15:43:00

老问题,但我应该注意到,从javascript解析XLS文件的一般任务是乏味和困难的,但并不是不可能的。

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

http://oss.sheetjs.com/js-xls/

(XLS文件,您想要的文件)

http://oss.sheetjs.com/js-xlsx/

(XLSX/XLSM/XLSB文件)

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

测试套件

http://oss.sheetjs.com/

显示了使用XHR获取和解析文件的版本。

票数 114
EN

Stack Overflow用户

发布于 2018-10-18 17:08:27

上传

在这里,你可以把数据放进去

格式

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.parse(json_object));
            jQuery( '#xlx_json' ).val( json_object );
          })
        };

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

        reader.readAsBinaryString(file);
      };
  };

  function handleFileSelect(evt) {
    
    var files = evt.target.files; // FileList object
    var xl2json = new ExcelToJSON();
    xl2json.parseExcel(files[0]);
  }


 



    


    

    
        document.getElementById('upload').addEventListener('change', handleFileSelect, false);

这是以下各项的组合

帖子:

https://stackoverflow.com/a/37083658/4742733

https://stackoverflow.com/a/39515846/4742733

祝你好运。

票数 36
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8238407

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档