首页 > 解决方案 > 无法读取未定义的属性“0” - 读取 xls 文件时

问题描述

我正在尝试以角度 7 读取 excel 数据。下面是代码。

import * as XLSX from 'xlsx';
arrayBuffer: any;
file: File;

incomingfile(event) {
  let files = event.target.files;
  this.file = files[0];
}

Upload() {
  let fileReader = new FileReader();
  fileReader.onload = (e) => {
    this.arrayBuffer = fileReader.result;
    var data = new Uint8Array(this.arrayBuffer);
    var arr = new Array();
    for (var i = 0; i != data.length; ++i) arr[i] = String.fromCharCode(data[i]);
    var bstr = arr.join("");
    var workbook = XLSX.read(bstr, {
      type: "binary"
    });
    var first_sheet_name = workbook.SheetNames[0];
    var worksheet = workbook.Sheets[first_sheet_name];
    console.log(XLSX.utils.sheet_to_json(worksheet, {
      raw: true
    }));
  }

  fileReader.readAsArrayBuffer(this.file);
}

以下是错误:

core.js:15724 错误类型错误:无法在 Object.readSync [as read] (xlsx.js:20413) 的 parse_xlml (xlsx.js:16052) 处读取 parse_xlml_xml (xlsx.js:15669) 处未定义的属性“0” FileReader.fileReader.onload (app.component.ts:40) 在 ZoneDelegate.push../node_modules/zone.js/dist/zone.js.ZoneDelegate.invoke (zone.js:391) 在 Object.onInvoke (核心。 js:17299) 在 ZoneDelegate.push../node_modules/zone.js/dist/zone.js.ZoneDelegate.invoke (zone.js:390) 在 Zone.push../node_modules/zone.js/dist/zone。 FileReader 上的 js.Zone.runGuarded (zone.js:161)。(zone.js:144)

我保存了一个简单的 3 行 3 列的 Excel 文件。扩展名为 .xls (excel 97-2003) workshhet 和 Excel Workbook ()*.xlsx 的 Excel 文件。他们两个似乎都不起作用。如果我遗漏了什么,请告诉我。提前致谢。

标签: angulartypescriptangular7xlsxsheetjs

解决方案


推荐阅读