2

我正在使用 sheetjs。空单元格未填充到包含标题的 json 对象中。如果未输入列,我也需要该信息。这是我的代码:

workbook.SheetNames.forEach((sheetName) => {
    let XL_row_object = XLSX.utils.sheet_to_json(workbook.Sheets[sheetName], {defval:""});
    console.log( JSON.stringify(XL_row_object ));
}
4

3 回答 3

1

你可以在开始时用这部分解决它,当你包含你的 SheetJS 时:

**const data = xlsx.utils.sheet_to_json((ws),{defval:""});**

  • data只是一个 const ,它保存从 sheet 到 json 的转换
  • ws是我们用于转换和操作的工作表的名称
  • defval表示空单元格值。在我们的例子中,它是一个空字符串 ("")
于 2021-03-29T17:51:31.747 回答
1

我遇到了同样的问题,我用这个解决了这个问题:

XLSX.readFile('file', {sheetStubs:true})

于 2020-05-07T09:08:23.827 回答
0

为了扩展sheetStubs答案,XLSX.utils.sheet_to_json将忽略存根,因此您应该首先使用一个简单的函数对其进行转换:

function removeStubs(wb) {
  Object.values(wb.Sheets).forEach(ws => {
    Object.values(ws).filter(v => v.t === 'z').forEach(v => Object.assign(v,{t:'s',v:''}));
  });
  return wb;
}

然后打电话 removeStubs( XLSX.readFile('file', {sheetStubs:true}) )

于 2021-07-23T17:11:25.013 回答