Angular 5中的Edit-Reading xlsx文件

时间:2018-08-07 05:25:02

标签: javascript angular typescript xlsx

我想读取xlsx文件,但我想要的只是读取前三个记录,因为如您所知,如果我读取所有记录,浏览器将崩溃。我需要您的帮助,以找到一种方法来读取前三个记录(行)

PS:我不想在解析xlsx文件时将数据保存在内存中

我现在正在使用它:

fileChange(event) {
    const fileList: FileList = event.target.files;
    if (fileList.length > 0) {
      const file: File = fileList[0];
      const reader = new FileReader();
      reader.onload = e => {
        const arrayBuffer = reader.result,
          data = new Uint8Array(arrayBuffer),
          arr = new Array();
        for (let i = 0; i !== data.length; ++i) {
          arr[i] = String.fromCharCode(data[i]);
        }

        const bstr = arr.join("");

        const workbook: XLSX.WorkBook = XLSX.read(bstr, { type: "binary" });
        const firstSheetName: string = workbook.SheetNames[0];
        const worksheet: XLSX.WorkSheet = workbook.Sheets[firstSheetName];
        this.setXlsxData(XLSX.utils.sheet_to_json(worksheet));
      };
      reader.readAsArrayBuffer(file);
    }
  }

  setXlsxData(data: Array<any>) {
    this.headers = Object.keys(data[0]);
    this.xlsxData = data;
  }

1 个答案:

答案 0 :(得分:1)

尝试此库。我已经编写并阅读了一些xlsx文件,它工作正常。 (抱歉,我不能在评论中写这个,不能评论)

https://www.npmjs.com/package/xlsx