SheetJS 显示空白行

Beg*_*ner 1 javascript sheetjs

当我使用该方法上传文件 xlsx 时,我使用 SheetJS

_file(file) {
   /* Boilerplate to set up FileReader */
      const reader = new FileReader();
      reader.onload = (e) => {
      /* Parse data */
      const bstr = e.target.result;
      const wb = XLSX.read(bstr, {type:'binary'});
      /* Get first worksheet */
      const wsname = wb.SheetNames[0];
      const ws = wb.Sheets[wsname];
      /* Convert array of arrays */
      const data = XLSX.utils.sheet_to_json(ws, {header:1});
      /* Update state */
      this.data = data;
      this.cols = make_cols(ws['!ref']);
     };
   reader.readAsBinaryString(file);
}
Run Code Online (Sandbox Code Playgroud)

我得到了一些有数据的单元格,但它包括一些没有数据的行如何删除它?我只想看到有数据的行。TIA

小智 6

为了删除没有任何数据的行,您可以使用 option blankRows: false,如下所示:

const data = XLSX.utils.sheet_to_json(ws, {header:1, blankRows: false});
Run Code Online (Sandbox Code Playgroud)

据我所知,此选项不能与 option 一起使用defval,因此如果您想为某些空单元格设置默认选项,但要删除空白行,则必须编写自定义函数。这里有一个关于此错误的未解决问题:sheet_to_json 不会跳过空白行

  • 我注意到“blankrows”应该全部小写,因为 JavaScript 区分大小写。我在代码中使用了“blankRows”,但它对我不起作用。然后我检查了Sheet.min.js文件,发现这个选项都是小写的。 (3认同)

小智 5

正如 Naupad 之前的评论中提到的,
将属性blankRows全部设置为小写可以按预期工作......

data = XLSX.utils.sheet_to_json(ws, {
    header:1,
    blankrows: false
});
Run Code Online (Sandbox Code Playgroud)