我有一个如下所示的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对象中?
答案 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...
]
如果需要,可以使用它来查找您的数据并将其复制。