讀取「弱點彙總報告(New).xlsx」,於瀏覽器本機自動產生 HTML 弱點追蹤 Dashboard。 純前端(SheetJS + Chart.js),檔案不上傳、無後端、無資料庫。
- 用瀏覽器開啟
index.html。 - 選擇或拖放 Excel(
.xlsx / .xls / .csv)。 - 自動解析並顯示 Dashboard 與人員追蹤。
- 會讀取所有**「數字-」開頭**的工作表(如
1-系統弱點掃描弱點、2-IoT設備弱點…),左側導覽可點選切換,每張表各一套看板。 - 依欄位名稱自動對應(各表欄位不同也可):嚴重度中/英/BitSight 統一映射、
首次展延上限/期限、負責單位/部門、負責人/負責人員都容錯;表 9 風險計數「中4 低2」自動展開、表 8 單位含人名自動拆。設定見config/profiles.js。 - 篩選:每張表可選「部門(含全部)」與「結案狀態(未結案/已結案/全部)」,即時重算。
- 面板自適應:該表沒有的欄位就自動隱藏對應面板(無嚴重度→藏嚴重度卡/圖/修復表;無例外/展延→藏「例外/展延統計」分頁)。
- 核對工具:
docs/多表檢查.html(雙擊即可用)可丟入 Excel,逐表檢查讀取/欄位對映/嚴重度與結案分布是否正確。
記住上次匯入:匯入成功後會存在瀏覽器本機(localStorage),下次開啟自動還原同一份資料,不必重匯;匯入新檔才會覆蓋。頁首「換一個檔案」可換檔、「🗑 清除記憶」可清除記住的資料。(換電腦/換瀏覽器不會帶著走。)
離線(無網路)環境請先看
assets/vendor/README.txt換成本機函式庫。
指標卡(皆可點擊 drill-down):未結案、已逾期、30天內、31–90天、91–180天、180天以上、無到期日、 Critical / High / Medium / Low(到期採互斥,相加=未結案);嚴重度圓餅圖、到期長條圖、AI 摘要。
🩺 嚴重度 × 修復狀態:Critical/High/Medium/Low 各自的未修復(未結案)/ 已修復(結案)/ 修復率(含全部紀錄,主管一眼看進度),數字可 drill-down。
🧮 數字平衡檢核(對帳):四種互斥切法各自加總=未結案;母體「未結案+結案」兩總對帳。
每位負責人:未結案、已逾期、30天內、31–90天、91–180天、180天以上、無到期日,數字皆可點擊 drill-down。 到期欄採互斥區間(非累進),故每列各欄相加 = 該人未結案,可逐列驗算。 每人「產生催辦內容」→ 產生可複製的 Mail 主旨 + 內容(可一鍵複製 / 開啟郵件軟體)。 催辦只聚焦「已逾期 + 快到期」,並自動標註各案處置階段(例外管理中 / 首次展延中)。
另有 未來六個月到期矩陣(人員 × 月):每位負責人未來 6 個月各月到期筆數 + 合計,格子可點開明細。
(月數可於 config.js 的 dueMatrixMonths 調整。)
Drill-down 明細欄位:Host、負責人、Name、Risk、Severity、Plugin ID、修補期限、首次展延上限、 例外核准期限、真正到期日、逾期天數、備註(可排序、匯出 CSV、另開新分頁)。
依「處置階段」分類統計,數字皆可 drill-down:
| 階段 | 判定 |
|---|---|
| 例外管理中 | 有例外核准期限 |
| 首次展延中 | 有首次展延上限、無例外 |
| 原始修補期限 | 兩者皆無,只有修補期限 |
每階段顯示:件數・占比・已逾期・快到期・尚安全;另有安全名單(例外保護中)、 處置階段占比圖、到期時間帶 × 階段堆疊圖。
- 今日行動清單(Dashboard 頂):逾期 + 今日到期 + 例外即將到期,依風險排序,一鍵批次催辦。
- 風險加權排行(Dashboard):分數 = 嚴重度權重 × 急迫倍數(逾期越久越高),撈出真正該先燒的 Top N。
- 例外治理雷達(例外/展延統計分頁):例外覆蓋率、例外破口(例外中卻已逾期)、例外到期預警(7/14/30 天)、慢性風險(反覆展延/例外 ≥ 2 次)。
- 批次催辦(人員追蹤分頁):一次彙整所有「有逾期/快到期」的負責人。
- 資料品質檢核(全域橫幅):缺到期日、例外/展延日期早於修補期限、負責人未指定、嚴重度無法辨識。
- 全文查詢分頁:關鍵字搜尋(可空格分隔多字,AND)+快速篩選(逾期/快到期/六個月到期/各嚴重度/例外中/慢性…)。例:查某負責人所有 CASE、未來六個月到期清單。
- 表格皆可排序:點欄位標題升/降序(空值恆墊底)。明細表固定高度、凍結 Host 欄,左右捲軸永遠在視野內。
- 另開新分頁:任何點出來的明細可彈出獨立頁面(可排序、自由左右捲動),方便多張並排比對。
- 數字平衡檢核(對帳)(Dashboard):用「處置階段 / 到期時間帶 / 嚴重度 / 負責人」四種互斥切法拆未結案,各自加總都應 = 未結案總數,打 ✓/✗;另有「全檔=各單位」「單位=未結案+結案+其他」母體對帳。任一組對不起來即代表資料或邏輯有異。
- 分析母體:
負責單位 = 資訊架構部且結案狀態 = 未結案 - 真正到期日:例外核准期限 → 首次展延上限 → 修補期限(依序取第一個有值者)
- 逾期天數:今日 − 真正到期日(正值為已逾期)
- 到期時間帶(互斥):已逾期 / 30天內 / 31–90天 / 91–180天 / 180天以上 / 無到期日 —— 每筆剛好落一帶,相加=未結案,可驗算
- 結案狀態拆解:資訊架構部 = 未結案 + 結案 + 其他(對帳面板顯示「兩總」)
- 快到期:
soonDays(預設 30)天內到期、未逾期 - 安全名單:例外管理中且例外核准期限尚未到 → 暫免催辦
- 風險分數:嚴重度權重(Critical 100 / High 40 / Medium 10…)× 急迫倍數(逾期
2 + 逾期天數/30、快到期1.5、其餘1) - 慢性風險:備註中處置申請(iForm)次數 ≥
chronicThreshold(預設 2) - 以上權重、門檻、預警級距皆可於
config/config.js調整
- 依欄位名稱讀取,不依賴欄位位置;欄位順序改變仍正常運作。
- 缺少必要欄位時,畫面提示「缺少哪些欄位」,不會當機。
- 欄位別名 / 分析條件 / 門檻皆可於
config/config.js調整。
index.html
css/style.css
config/config.js 設定(欄位對應、分析條件、門檻、顏色、信件)
js/utils.js 日期解析、格式化、DOM 輔助
js/excel.js SheetJS 讀檔 + 依名稱建立欄位對應
js/analysis.js 真正到期日、逾期、分類統計、依負責人分組
js/ai-summary.js 規則式 AI 摘要
js/reminder.js 催辦信件產生
js/ui-common.js Modal / drill-down 明細表 / Toast / 複製 / CSV
js/dashboard.js TAB1 指標卡 + 圖表 + AI 摘要
js/tracking.js TAB2 人員追蹤 + 催辦
js/main.js 主控(上傳 / 拖放 / 分頁 / 錯誤)
assets/vendor/ 離線函式庫放置處