获取每个JSON对象中的合并单元格值

时间:2019-01-22 21:45:21

标签: js-xlsx

我有一个如下所示的excel文件:

enter image description here

如您所见,有一些合并的单元格。我一直在使用js-xlsx将数据转换为应用程序中的JSON对象。这是代码:

onFileLoad(loadedEvent: any) {
    let data = new Uint8Array(loadedEvent.target.result);
    let arr: Array<string> = new Array();
    for (let i = 0; i != data.length; i++) arr[i] = String.fromCharCode(data[i]);
    let bstr = arr.join("");
    let wb: XLSX.IWorkBook = XLSX.read(bstr, { type: "binary" });
    let workSheet = wb.Sheets[wb.SheetNames[0]];
    let jsonData = XLSX.utils.sheet_to_json(workSheet, {raw: true });
    console.log(jsonData);
}

该代码在显示“ 40”的行上工作正常,但在“ 41”处,JSON对象不包含来自合并单元格的字段。您可以在这里看到它:

enter image description here

有没有办法使合并后的单元格中的值包含在每个JSON对象中?

1 个答案:

答案 0 :(得分:0)

我认为您需要分别处理这些问题,阅读器只会从合并范围中提取左上方的单元格。如果要在读取对象后进行某种处理,则可以访问工作簿中的合并单元格。Sheets[data_sheet_name] [“!merges”]

[
{//start of merge
s:{c:col_num, r:row_num},
//end of merge
e: {c:col_num, r:row_num}
},
more merge objects...
 ]

如果需要,可以使用它来查找您的数据并将其复制。