0

我有一个看起来像这样的 excel 文件:

在此处输入图像描述

如您所见,有一些合并的单元格。我一直在使用 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 对象不包含来自合并单元格的字段。你可以在这里看到:

在此处输入图像描述

有没有办法让合并单元格中的值出现在每个 JSON 对象中?

4

1 回答 1

0

我相信您需要单独处理这些,读者只会从合并范围中选择左上角的单元格。如果您想在读取对象后应用某种处理,您可以访问 workbook.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...
 ]

如果您愿意,可以使用它来查找您的数据并复制它。

于 2019-05-24T21:44:37.650 回答