
minimax-xlsx
熱門開啟、建立、讀取、分析、編輯或驗證 Excel/試算表檔案(.xlsx、.xlsm、.csv、.tsv)。當使用者要求建立、建構、修改、分析、讀取、驗證或格式化任何 Excel 試算表、財務模型、樞紐分析表或表格資料檔案時使用。涵蓋:從頭建立新的 xlsx、讀取和分析現有檔案、編輯現有 xlsx 且不損失任何格式、公式重新計算與驗證,以及套用專業財務格式標準。觸發詞包括「試算表」、「Excel」、「.xlsx」、「.csv」、「樞紐分析表」、「財務模型」、「公式」,或任何要求以 Excel 格式產出表格資料的請求。
開啟、建立、讀取、分析、編輯或驗證 Excel/試算表檔案(.xlsx、.xlsm、.csv、.tsv)。當使用者要求建立、建構、修改、分析、讀取、驗證或格式化任何 Excel 試算表、財務模型、樞紐分析表或表格資料檔案時使用。涵蓋:從頭建立新的 xlsx、讀取和分析現有檔案、編輯現有 xlsx 且不損失任何格式、公式重新計算與驗證,以及套用專業財務格式標準。觸發詞包括「試算表」、「Excel」、「.xlsx」、「.csv」、「樞紐分析表」、「財務模型」、「公式」,或任何要求以 Excel 格式產出表格資料的請求。
MiniMax XLSX 技能
直接處理請求。請勿產生子代理。務必寫出使用者要求的輸出檔案。
任務路由
| 任務 | 方法 | 指南 |
|---|---|---|
| 讀取 — 分析現有資料 | xlsx_reader.py + pandas |
references/read-analyze.md |
| 建立 — 從頭建立新的 xlsx | XML 範本 | references/create.md + references/format.md |
| 編輯 — 修改現有 xlsx | XML 解包→編輯→打包 | references/edit.md(如需樣式則加上 format.md) |
| 修復 — 修復現有 xlsx 中的損壞公式 | XML 解包→修復 <f> 節點→打包 |
references/fix.md |
| 驗證 — 檢查公式 | formula_check.py |
references/validate.md |
讀取 — 分析資料(先閱讀 references/read-analyze.md)
先用 xlsx_reader.py 探索結構,再用 pandas 進行自訂分析。切勿修改原始檔案。
格式規則:當使用者指定小數位數(例如「2 位小數」),將該格式套用至所有數值 — 對每個數字使用 f'{v:.2f}'。絕不能輸出 12875 而應輸出 12875.00。
彙總規則:一律直接從 DataFrame 欄位計算總和/平均值/計數 — 例如 df['Revenue'].sum()。彙總前絕不重新推導欄位值。
建立 — XML 範本(先閱讀 references/create.md + references/format.md)
複製 templates/minimal_xlsx/ → 直接編輯 XML → 用 xlsx_pack.py 打包。每個衍生值都必須是 Excel 公式(<f>SUM(B2:B9)</f>),絕不能是寫死的數字。依 format.md 套用字型顏色。
編輯 — XML 直接編輯(先閱讀 references/edit.md)
關鍵 — 編輯完整性規則:
- 編輯任務絕不能建立新的
Workbook()。務必載入原始檔案。 - 輸出必須包含與輸入相同的工作表(相同名稱、相同資料)。
- 僅修改任務要求的特定儲存格 — 其他所有內容必須保持不變。
- 儲存 output.xlsx 後,務必驗證:用
xlsx_reader.py或pandas開啟,確認原始工作表名稱及部分原始資料存在。若驗證失敗,表示寫錯檔案 — 在交付前修正。
對現有檔案絕不使用 openpyxl 往返(會破壞 VBA、樞紐分析表、走勢圖)。改為:解包 → 使用輔助腳本 → 重新打包。
「填入儲存格」/「對現有儲存格加入公式」= 編輯任務。 若輸入檔案已存在且要求填入、更新或對特定儲存格加入公式,則必須使用 XML 編輯路徑。絕不能建立新的 Workbook()。範例 — 在 B3 填入跨工作表 SUM 公式:
python3 SKILL_DIR/scripts/xlsx_unpack.py input.xlsx /tmp/xlsx_work/
# 透過 xl/workbook.xml → xl/_rels/workbook.xml.rels 找到目標工作表的 XML
# 然後使用編輯工具在目標 <c> 元素內加入 <f>:
# <c r="B3"><f>SUM('Sales Data'!D2:D13)</f><v></v></c>
python3 SKILL_DIR/scripts/xlsx_pack.py /tmp/xlsx_work/ output.xlsx
新增欄位(公式、數字格式、樣式會自動從相鄰欄位複製):
python3 SKILL_DIR/scripts/xlsx_unpack.py input.xlsx /tmp/xlsx_work/
python3 SKILL_DIR/scripts/xlsx_add_column.py /tmp/xlsx_work/ --col G \
--sheet "Sheet1" --header "佔總額百分比" \
--formula '=F{row}/$F$10' --formula-rows 2:9 \
--total-row 10 --total-formula '=SUM(G2:G9)' --numfmt '0.0%' \
--border-row 10 --border-style medium
python3 SKILL_DIR/scripts/xlsx_pack.py /tmp/xlsx_work/ output.xlsx
--border-row 旗標會對該列的所有儲存格(不僅是新欄位)套用頂框線。當任務需要在總計列上使用會計樣式框線時使用。
插入列(會移動現有列、更新 SUM 公式、修正循環參照):
python3 SKILL_DIR/scripts/xlsx_unpack.py input.xlsx /tmp/xlsx_work/
# 重要:透過在工作表 XML 中搜尋標籤文字來找到正確的 --at 列,
# 而不是使用提示中的列號。
# 提示可能說「第 5 列(辦公室租金)」,但辦公室租金實際上可能
# 在第 4 列。務必先透過文字標籤定位該列。
python3 SKILL_DIR/scripts/xlsx_insert_row.py /tmp/xlsx_work/ --at 5 \
--sheet "預算 FY2025" --text A=水電費 \
--values B=3000 C=3000 D=3500 E=3500 \
--formula 'F=SUM(B{row}:E{row})' --copy-style-from 4
python3 SKILL_DIR/scripts/xlsx_pack.py /tmp/xlsx_work/ output.xlsx
列查詢規則:當任務說「在第 N 列(標籤)之後」,務必透過在工作表 XML 中搜尋「標籤」來找到該列(grep -n "Label" /tmp/xlsx_work/xl/worksheets/sheet*.xml 或檢查 sharedStrings.xml)。對 --at 使用實際列號 + 1。請勿單獨呼叫 xlsx_shift_rows.py — xlsx_insert_row.py 會在內部呼叫它。
套用整列框線(例如在總計列上使用會計線):
執行輔助腳本後,對目標列的所有儲存格(不僅是新加入的儲存格)套用框線。在 xl/styles.xml 中,附加一個具有所需樣式的新 <border>,然後在 <cellXfs> 中附加一個新的 <xf>,該 <xf> 複製每個儲存格現有的 <xf> 但設定新的 borderId。透過 s 屬性將新的樣式索引套用至該列的每個 <c>:
<!-- 在 xl/styles.xml 中,附加到 <borders>: -->
<border>
<left/><right/><top style="medium"/><bottom/><diagonal/>
</border>
<!-- 然後在 <cellXfs> 中為每個現有樣式附加一個帶有新 borderId 的 xf 副本 -->
關鍵規則:當任務說「對第 N 列加入框線」,請遍歷從 A 到最後一欄的所有儲存格,而不僅是新加入的儲存格。
手動 XML 編輯(用於輔助腳本未涵蓋的任何情況):
python3 SKILL_DIR/scripts/xlsx_unpack.py input.xlsx /tmp/xlsx_work/
# ... 使用編輯工具編輯 XML ...
python3 SKILL_DIR/scripts/xlsx_pack.py /tmp/xlsx_work/ output.xlsx
修復 — 修復損壞的公式(先閱讀 references/fix.md)
這是編輯任務。解包 → 修復損壞的 <f> 節點 → 打包。保留所有原始工作表與資料。
驗證 — 檢查公式(先閱讀 references/validate.md)
執行 formula_check.py 進行靜態驗證。若可用,使用 libreoffice_recalc.py 進行動態重新計算。
財務顏色標準
| 儲存格角色 | 字型顏色 | 十六進位碼 |
|---|---|---|
| 手動輸入 / 假設 | 藍色 | 0000FF |
| 公式 / 計算結果 | 黑色 | 000000 |
| 跨工作表參照公式 | 綠色 | 00B050 |
關鍵規則
- 公式優先:每個計算儲存格必須使用 Excel 公式,而非寫死的數字
- 建立 → XML 範本:複製最小範本,直接編輯 XML,用
xlsx_pack.py打包 - 編輯 → XML:絕不使用 openpyxl 往返。使用解包/編輯/打包腳本
- 務必產出輸出檔案 — 這是第一優先
- 交付前驗證:
formula_check.py結束碼 0 = 安全
公用腳本
python3 SKILL_DIR/scripts/xlsx_reader.py input.xlsx # 結構探索
python3 SKILL_DIR/scripts/formula_check.py file.xlsx --json # 公式驗證
python3 SKILL_DIR/scripts/formula_check.py file.xlsx --report # 標準化報告
python3 SKILL_DIR/scripts/xlsx_unpack.py in.xlsx /tmp/work/ # 解包以進行 XML 編輯
python3 SKILL_DIR/scripts/xlsx_pack.py /tmp/work/ out.xlsx # 編輯後重新打包
python3 SKILL_DIR/scripts/xlsx_shift_rows.py /tmp/work/ insert 5 1 # 為插入而移動列
python3 SKILL_DIR/scripts/xlsx_add_column.py /tmp/work/ --col G ... # 新增含公式的欄位
python3 SKILL_DIR/scripts/xlsx_insert_row.py /tmp/work/ --at 6 ... # 插入含資料的列





