name: excel-pm-optimizer description: > Excel專案管理最佳化工具鏈。用Python(openpyxl/oletools)診斷xlsm/xlsx檔案結構、 提取VBA程式碼、評估公式健康度、最佳化條件格式與命名範圍、設計甘特圖體系。 適用於專案進度表最佳化、VBA現代化評估、公式重構、甘特圖設計等場景。 tags: [excel最佳化, VBA評估, 甘特圖, 公式重構, openpyxl, oletools]
用Python診斷和最佳化Excel專案管理檔案,覆蓋VBA提取、公式評估、條件格式最佳化、甘特圖設計全鏈路。
1. Excel檔案全棧診斷
用 openpyxl + oletools 解析xlsm/xlsx檔案,輸出結構化診斷報告:
- Sheet結構(維度、合併單元格、隱藏行列)
- 公式鏈(LET/IF/NETWORKDAYS等函式使用統計)
- VBA程式碼提取與分類(事件處理器/模組/窗體)
- 命名範圍健康度(#REF!/#NAME?檢測)
- 條件格式規則統計
- 資料驗證規則
- 圖表與圖片資源
2. VBA評估與現代化決策 提取VBA程式碼後,按以下決策樹評估: - 事件驅動(Worksheet_Change等)→ 保留VBA或遷移Office Scripts - 資料格式化 → 替代為條件格式或自定義格式 - 批次計算 → 替代為LET/LAMBDA/動態陣列 - 資料清洗 → 替代為Power Query - 複雜互動 → 保留VBA
3. 公式引擎最佳化 - 巢狀IF → IFS/SWITCH - 重複計算 → LET區域性變數 - VLOOKUP → XLOOKUP/FILTER - 陣列公式(Ctrl+Shift+Enter) → 動態陣列溢位 - 自定義邏輯 → LAMBDA命名函式 - NETWORKDAYS → NETWORKDAYS.INTL(支援自定義週末)
4. 甘特圖體系設計 - 動態時間軸:LET + COLUMN()實現可切換粒度(日/周/旬/半月/月) - 自動狀態判斷:IF + NETWORKDAYS + TODAY() - 進度百分比:MAX(0, MIN(1, NETWORKDAYS(...)/NETWORKDAYS(...))) - 視覺化甘特條:條件格式 + 公式驅動著色 - 里程碑標記:資料驗證 + 圖示集
pip install openpyxl oletools
Python路徑(Windows隔離環境):
C:/Users/13824/.workbuddy/binaries/python/envs/default/Scripts/python.exe
python scripts/diagnose_excel.py "path/to/file.xlsm"
輸出JSON格式的診斷報告,包含所有元素的健康度評估。
python scripts/extract_vba.py "path/to/file.xlsm"
輸出每個VBA模組的程式碼內容。
小蔥技能7w4.net有完整的技能分類。
python scripts/optimize_formulas.py "path/to/file.xlsm" --output "optimized.xlsm"
自動修復#REF!錯誤,重構巢狀公式,清理命名範圍。
參考 references/gantt-chart-patterns.md 中的設計模式。
完整的Excel檔案診斷指令碼,輸出結構化JSON報告。
使用oletools提取VBA程式碼,支援xlsm/xlsb/xls格式。
公式最佳化指令碼,修復錯誤引用,重構複雜公式。
references/gantt-chart-patterns.md — 甘特圖設計模式庫references/vba-modernization-guide.md — VBA現代化決策指南references/formula-optimization-patterns.md — 公式最佳化模式庫references/excel-version-compatibility.md — Excel版本相容性矩陣本skill與excel-optimization-expert專家共享 knowledge/registry.json。
每次最佳化完成後,將新的模式、方案、教訓寫入registry.json,實現知識積累。
整體質量中等偏上。文件內容豐富、場景覆蓋全面,指令碼能完成基本的Excel診斷和VBA提取工作,對最佳化甘特圖和公式很有參考價值。但存在文件描述的功能與實際包含內容不匹配的問題,部分承諾的指令碼缺失,需要自己補充開發。適合有一定技術基礎的使用者使用,新手可能會遇到功能找不到的困惑。