From 20846348d42fa4fdbe6c95ff70eb5a69e1182f9f Mon Sep 17 00:00:00 2001 From: tsukuboshi <53089786+tsukuboshi@users.noreply.github.com> Date: Thu, 28 Mar 2024 21:45:25 +0900 Subject: [PATCH] =?UTF-8?q?=E3=83=A9=E3=83=99=E3=83=AB=E5=90=8D=E4=B8=80?= =?UTF-8?q?=E8=A6=A7=E3=81=8C=E4=B8=80=E5=AE=9A=E3=81=AE=E9=A0=86=E7=95=AA?= =?UTF-8?q?=E3=81=AB=E3=81=AA=E3=82=8B=E3=82=88=E3=81=86=E5=A4=89=E6=9B=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/example-module.ts | 36 ++++++++++++++++++++++-------------- 1 file changed, 22 insertions(+), 14 deletions(-) diff --git a/src/example-module.ts b/src/example-module.ts index 9dbeafa..c59dc79 100644 --- a/src/example-module.ts +++ b/src/example-module.ts @@ -306,22 +306,30 @@ function writeSummaryToSheet( // ヘッダー行を考慮して2行目から開始 let row = 2; - // 色番号ごとの工数をソートされたエントリを基にシートに書き込む - workHoursMap.forEach((hours, color) => { - // イベントの色番号を色名に変換 - const colorName = colorMap[color]; - - // イベントの色名をラベル名に変換 + // LabelMapを使用してラベル名一覧を順番にシートに書き込む + Object.keys(LabelMap).forEach(colorName => { + // カラー名に対応するラベル名を取得 const labelName = LabelMap[colorName]; - // イベントの工数の割合を計算 - const workPercentage = ((hours / totalWorkHours) * 100).toFixed(1); - - // イベントの情報をシートに書き込む - sheet.getRange('I' + row).setValue(labelName); - sheet.getRange('J' + row).setValue(hours); - sheet.getRange('K' + row).setValue(workPercentage); - row++; + // ラベル名が空文字でない場合のみ処理を行う + if (labelName) { + // 色名に対応する色番号を取得 + const color = Object.keys(colorMap).find( + key => colorMap[key] === colorName + ); + // 色番号に対応する工数を取得(存在しない場合は0) + const hours = color ? workHoursMap.get(color) : 0; + // イベントの工数の割合を計算(存在しない場合は0) + const workPercentage = hours + ? ((hours / totalWorkHours) * 100).toFixed(1) + : 0; + + // イベントの情報をシートに書き込む + sheet.getRange('I' + row).setValue(labelName); + sheet.getRange('J' + row).setValue(hours); + sheet.getRange('K' + row).setValue(workPercentage); + row++; + } }); // ラベル名一覧と工数合計が記載されている範囲を指定