0

次のようなExcelファイルがあります。

ここに画像の説明を入力

ご覧のとおり、結合されたセルがいくつかあります。アプリケーションでデータを JSON オブジェクトに変換するために js-xlsx を使用しています。コードは次のとおりです。

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 に答える