minimax-xlsx

安装量: 1.5K
排名: #2000

安装

npx skills add https://github.com/minimax-ai/skills --skill minimax-xlsx
MiniMax XLSX Skill
Handle the request directly. Do NOT spawn sub-agents. Always write the output file the user requests.
Task Routing
Task
Method
Guide
READ
— analyze existing data
xlsx_reader.py
+ pandas
references/read-analyze.md
CREATE
— new xlsx from scratch
XML template
references/create.md
+
references/format.md
EDIT
— modify existing xlsx
XML unpack→edit→pack
references/edit.md
(+
format.md
if styling needed)
FIX
— repair broken formulas in existing xlsx
XML unpack→fix
nodes→pack
references/fix.md
VALIDATE
— check formulas
formula_check.py
references/validate.md
READ — Analyze data (read
references/read-analyze.md
first)
Start with
xlsx_reader.py
for structure discovery, then pandas for custom analysis. Never modify the source file.
Formatting rule
When the user specifies decimal places (e.g. "2 decimal places"), apply that format to ALL numeric values — use
f'{v:.2f}'
on every number. Never output
12875
when
12875.00
is required.
Aggregation rule
Always compute sums/means/counts directly from the DataFrame column — e.g.
df['Revenue'].sum()
. Never re-derive column values before aggregation.
CREATE — XML template (read
references/create.md
+
references/format.md
)
Copy
templates/minimal_xlsx/
→ edit XML directly → pack with
xlsx_pack.py
. Every derived value MUST be an Excel formula (
SUM(B2:B9)
), never a hardcoded number. Apply font colors per
format.md
.
EDIT — XML direct-edit (read
references/edit.md
first)
CRITICAL — EDIT INTEGRITY RULES:
NEVER create a new
Workbook()
for edit tasks. Always load the original file.
The output MUST contain the
same sheets
as the input (same names, same data).
Only modify the specific cells the task asks for — everything else must be untouched.
After saving output.xlsx, verify it
open with xlsx_reader.py or pandas and confirm the original sheet names and a sample of original data are present. If verification fails, you wrote the wrong file — fix it before delivering. Never use openpyxl round-trip on existing files (corrupts VBA, pivots, sparklines). Instead: unpack → use helper scripts → repack. "Fill cells" / "Add formulas to existing cells" = EDIT task. If the input file already exists and you are told to fill, update, or add formulas to specific cells, you MUST use the XML edit path. Never create a new Workbook() . Example — fill B3 with a cross-sheet SUM formula: python3 SKILL_DIR/scripts/xlsx_unpack.py input.xlsx /tmp/xlsx_work/

Find the target sheet's XML via xl/workbook.xml → xl/_rels/workbook.xml.rels

Then use the Edit tool to add inside the target element:

SUM('Sales Data'!D2:D13)

python3 SKILL_DIR/scripts/xlsx_pack.py /tmp/xlsx_work/ output.xlsx Add a column (formulas, numfmt, styles auto-copied from adjacent column): 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 "% of Total" \ --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 The --border-row flag applies a top border to ALL cells in that row (not just the new column). Use it when the task requires accounting-style borders on total rows. Insert a row (shifts existing rows, updates SUM formulas, fixes circular refs): python3 SKILL_DIR/scripts/xlsx_unpack.py input.xlsx /tmp/xlsx_work/

IMPORTANT: Find the correct --at row by searching for the label text

in the worksheet XML, NOT by using the row number from the prompt.

The prompt may say "row 5 (Office Rent)" but Office Rent might actually

be at row 4. Always locate the row by its text label first.

python3 SKILL_DIR/scripts/xlsx_insert_row.py /tmp/xlsx_work/
--at
5
\
--sheet
"Budget FY2025"
--text
A
=
Utilities
\
--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
Row lookup rule
When the task says "after row N (Label)", always find the row by searching for "Label" in the worksheet XML ( grep -n "Label" /tmp/xlsx_work/xl/worksheets/sheet*.xml or check sharedStrings.xml). Use the actual row number + 1 for --at . Do NOT call xlsx_shift_rows.py separately — xlsx_insert_row.py calls it internally. Apply row-wide borders (e.g. accounting line on a TOTAL row): After running helper scripts, apply borders to ALL cells in the target row, not just newly added cells. In xl/styles.xml , append a new with the desired style, then append a new in that clones each cell's existing but sets the new borderId . Apply the new style index to every in the row via the s attribute:

< border

< left /> < right /> < top style = " medium " /> < bottom /> < diagonal /> </ border

Key rule
When a task says "add a border to row N", iterate over ALL cells A through the last column, not just newly added cells. Manual XML edit (for anything the helper scripts don't cover): python3 SKILL_DIR/scripts/xlsx_unpack.py input.xlsx /tmp/xlsx_work/

... edit XML with the Edit tool ...

python3 SKILL_DIR/scripts/xlsx_pack.py /tmp/xlsx_work/ output.xlsx
FIX — Repair broken formulas (read
references/fix.md
first)
This is an EDIT task. Unpack → fix broken
nodes → pack. Preserve all original sheets and data.
VALIDATE — Check formulas (read
references/validate.md
first)
Run
formula_check.py
for static validation. Use
libreoffice_recalc.py
for dynamic recalculation when available.
Financial Color Standard
Cell Role
Font Color
Hex Code
Hard-coded input / assumption
Blue
0000FF
Formula / computed result
Black
000000
Cross-sheet reference formula
Green
00B050
Key Rules
Formula-First
Every calculated cell MUST use an Excel formula, not a hardcoded number
CREATE → XML template
Copy minimal template, edit XML directly, pack with
xlsx_pack.py
EDIT → XML
Never openpyxl round-trip. Use unpack/edit/pack scripts Always produce the output file — this is the #1 priority Validate before delivery : formula_check.py exit code 0 = safe Utility Scripts python3 SKILL_DIR/scripts/xlsx_reader.py input.xlsx

structure discovery

python3 SKILL_DIR/scripts/formula_check.py file.xlsx --json

formula validation

python3 SKILL_DIR/scripts/formula_check.py file.xlsx --report

standardized report

python3 SKILL_DIR/scripts/xlsx_unpack.py in.xlsx /tmp/work/

unpack for XML editing

python3 SKILL_DIR/scripts/xlsx_pack.py /tmp/work/ out.xlsx

repack after editing

python3 SKILL_DIR/scripts/xlsx_shift_rows.py /tmp/work/ insert 5 1

shift rows for insertion

python3 SKILL_DIR/scripts/xlsx_add_column.py /tmp/work/ --col G .. .

add column with formulas

python3 SKILL_DIR/scripts/xlsx_insert_row.py /tmp/work/ --at 6 .. .

insert row with data

返回排行榜