首页 > 解决方案 > 如何仅读取角度 5 中大 xlsx 的前 n 行?

问题描述

我试图在前端显示 xlsx 文件中的几行数据。我想从 excel 文件中读取前 n 行,因为如果我读取整个 excel 文件,这将花费大量时间,而这不是必需的。为此,我正在使用 5kb 进行切片操作。如果文件大小低于 5k(因为我正在阅读完整的 excel),它可以工作,但它不能超过 5kb。我可以在控制台中看到这个错误。

错误:损坏的 zip:找不到中央目录的结尾

您可以在下面查看我的代码。我将文件传递给 readFile 函数。我在下面给出了我的程序的 sudo 代码。

import * as XLSX from 'xlsx';
function readFile(file)
{ 
    var myReader: FileReader = new FileReader();
    let slice_file = file.slice(0, 1024*5);
    //console.log(slice_file);
    let workbook: any;       
    myReader.readAsArrayBuffer(slice_file)
    myReader.onload = (e) => {
       try{  
              workbook = XLSX.read(myReader.result, { type: "array" });
       }catch(e){
              console.log(e);
          }

    }
    //I will use workbook here
}

据我所知,这是行不通的,因为如果不读取文件的完整大小,它将就像一个损坏的文件。我不想阅读整个文件。我尝试使用二进制格式的文件阅读器,我也将 myReader 结果转换为二进制并尝试使用 XLXS 读取,但没有用。

标签: javascriptangular5xlsx

解决方案


推荐阅读