Skills minimax-xlsx
📦

minimax-xlsx

Safe ⚙️ External commands🌐 Network access📁 Filesystem access

Excel & Spreadsheet Toolkit

Create, read, edit, validate, and format professional Excel spreadsheets (.xlsx, .xlsm, CSV) with zero format loss, financial-grade styling, and formula validation -- all without openpyxl's destructive round-trip behavior.

Supports: Claude Codex Code(CC)
🥈 80 Silver
1

Download the skill ZIP

2

Upload in Claude

Go to Settings → Capabilities → Skills → Upload skill

3

Toggle on and start using

Test it

Using "minimax-xlsx". Create a budget spreadsheet with income, expenses, and savings tracking for 12 months

Expected outcome:

Created 'budget.xlsx' with 3 sheets: 'Summary' (annual overview), 'Income' (monthly income entries with color-coded inputs), and 'Expenses' (categorized monthly expenses with SUM formulas and totals). All cells follow financial color standards: blue for inputs, black for formulas. File is 15KB with proper OOXML structure.

Using "minimax-xlsx". Validate 'financial_model.xlsx' for errors

Expected outcome:

Validation report: 2 issues found. (1) Sheet 'Projections', cell G15 contains #REF! error -- references deleted sheet 'OldData'. (2) Sheet 'Summary', named range 'TotalRevenue' points to invalid range Sheet1!A1:A100 but data only extends to A47. All other formulas, cross-sheet references, and named ranges are valid.

Security Audit

Safe
v1 • 4/16/2026

All 1465 static findings are false positives. The skill uses subprocess.run() to launch LibreOffice headless for formula recalculation (legitimate external command), OOXML namespace URIs are flagged as 'network' activity (these are XML strings, not network calls), and path-traversal patterns in xlsx_unpack.py are defensive zip-slip protection code that blocks malicious archives. The 'sudo apt-get' references appear only in informational error messages instructing users how to install LibreOffice. File I/O and zipfile operations are core to spreadsheet manipulation. No actual security risks identified.

25
Files scanned
6,822
Lines analyzed
7
findings
1
Total audits
Medium Risk Issues (2)
subprocess.run() launches LibreOffice headless
scripts/libreoffice_recalc.py uses subprocess.run() to execute soffice with --headless --norestore flags for formula recalculation. This is expected and safe behavior for this skill's tier-2 recalculation workflow.
Zipfile unpack/pack operations
Multiple scripts use zipfile module to unpack and repack .xlsx archives. This is required for the XML-level editing workflow that preserves formatting.
Low Risk Issues (2)
OOXML namespace URIs flagged as network references
URLs matching 'http://schemas.openxmlformats.org/' patterns in XML templates and reference files are OOXML namespace declarations, not network requests.
File system read/write operations
Scripts read and write files on the filesystem for xlsx manipulation.

Risk Factors

⚙️ External commands (1148)
references/create.md:16 references/create.md:24 references/create.md:25 references/create.md:25 references/create.md:30 references/create.md:31 references/create.md:31 references/create.md:34 references/create.md:37 references/create.md:61-63 references/create.md:63-67 references/create.md:67-80 references/create.md:80-91 references/create.md:91-92 references/create.md:92-94 references/create.md:94-98 references/create.md:98-106 references/create.md:106-107 references/create.md:107 references/create.md:107 references/create.md:107-108 references/create.md:108 references/create.md:108-109 references/create.md:109 references/create.md:109-110 references/create.md:110 references/create.md:110-112 references/create.md:112-114 references/create.md:114-116 references/create.md:116-122 references/create.md:122-125 references/create.md:125 references/create.md:125 references/create.md:125-127 references/create.md:127-128 references/create.md:128-130 references/create.md:130-132 references/create.md:132-150 references/create.md:150-152 references/create.md:152-154 references/create.md:154-171 references/create.md:171-175 references/create.md:175 references/create.md:175 references/create.md:175 references/create.md:175-177 references/create.md:177-192 references/create.md:192-198 references/create.md:198 references/create.md:198-199 references/create.md:199 references/create.md:199-200 references/create.md:200 references/create.md:200-201 references/create.md:201-208 references/create.md:208-213 references/create.md:213-228 references/create.md:228-231 references/create.md:231 references/create.md:231-232 references/create.md:232-233 references/create.md:233-234 references/create.md:234-239 references/create.md:239-243 references/create.md:243-245 references/create.md:245-246 references/create.md:246-248 references/create.md:248-252 references/create.md:252-256 references/create.md:256-259 references/create.md:259-265 references/create.md:265 references/create.md:265-270 references/create.md:270-278 references/create.md:278-282 references/create.md:282-284 references/create.md:284 references/create.md:284 references/create.md:284-285 references/create.md:285 references/create.md:285-286 references/create.md:286-287 references/create.md:287 references/create.md:287-288 references/create.md:288 references/create.md:288-289 references/create.md:289-293 references/create.md:293-337 references/create.md:337-341 references/create.md:341 references/create.md:341-343 references/create.md:343-352 references/create.md:352-358 references/create.md:358-359 references/create.md:359-363 references/create.md:363-366 references/create.md:366-367 references/create.md:367-372 references/create.md:372-380 references/create.md:380-382 references/create.md:382-385 references/create.md:385-389 references/create.md:389-396 references/create.md:396-400 references/create.md:400-416 references/create.md:416-420 references/create.md:420-435 references/create.md:435-437 references/create.md:437-444 references/create.md:444-458 references/create.md:458-460 references/create.md:460-461 references/create.md:461-465 references/create.md:465-468 references/create.md:468-470 references/create.md:470-474 references/create.md:474-483 references/create.md:483-491 references/create.md:491-493 references/create.md:493-495 references/create.md:495-496 references/create.md:496-497 references/create.md:497 references/create.md:497-502 references/create.md:502-504 references/create.md:504-506 references/create.md:506-507 references/create.md:507-508 references/create.md:508-509 references/create.md:509-519 references/create.md:519-520 references/create.md:520 references/create.md:520-521 references/create.md:521 references/create.md:521 references/create.md:521 references/create.md:521-522 references/create.md:522 references/create.md:522 references/create.md:522-523 references/create.md:523 references/create.md:523-524 references/create.md:524 references/create.md:524 references/create.md:524-525 references/create.md:525 references/create.md:525-526 references/create.md:526-527 references/create.md:527 references/create.md:527 references/create.md:527-535 references/create.md:535 references/create.md:535 references/create.md:535 references/create.md:535-536 references/create.md:536 references/create.md:536 references/create.md:536 references/create.md:536-537 references/create.md:537 references/create.md:537 references/create.md:537-539 references/create.md:539 references/create.md:539 references/create.md:539-540 references/create.md:540 references/create.md:540-541 references/create.md:541 references/create.md:541-542 references/create.md:542 references/create.md:542-543 references/create.md:543 references/create.md:543 references/create.md:543-544 references/create.md:544 references/create.md:544-558 references/create.md:558-573 references/create.md:573-583 references/create.md:583-632 references/create.md:632-636 references/create.md:636 references/create.md:636 references/create.md:636-638 references/create.md:638-658 references/create.md:658-662 references/create.md:662-664 references/create.md:664-677 references/create.md:677-684 references/create.md:684-685 references/create.md:685-686 references/create.md:686 references/create.md:686-687 references/create.md:687 references/edit.md:18 references/edit.md:24 references/edit.md:24 references/edit.md:28 references/edit.md:28 references/edit.md:28 references/edit.md:29 references/edit.md:31 references/edit.md:37 references/edit.md:49-51 references/edit.md:51-53 references/edit.md:53-55 references/edit.md:55 references/edit.md:55-63 references/edit.md:63-66 references/edit.md:66-68 references/edit.md:68-72 references/edit.md:72-75 references/edit.md:75-81 references/edit.md:81-84 references/edit.md:84-90 references/edit.md:90-92 references/edit.md:92-93 references/edit.md:93-94 references/edit.md:94-95 references/edit.md:95 references/edit.md:95-96 references/edit.md:96-104 references/edit.md:104 references/edit.md:104 references/edit.md:104-105 references/edit.md:105 references/edit.md:105 references/edit.md:105 references/edit.md:105-106 references/edit.md:106 references/edit.md:106 references/edit.md:106-107 references/edit.md:107 references/edit.md:107 references/edit.md:107-108 references/edit.md:108 references/edit.md:108 references/edit.md:108 references/edit.md:108 references/edit.md:108 references/edit.md:108-109 references/edit.md:109 references/edit.md:109 references/edit.md:109-110 references/edit.md:110 references/edit.md:110 references/edit.md:110 references/edit.md:110-124 references/edit.md:124-127 references/edit.md:127-129 references/edit.md:129-137 references/edit.md:137 references/edit.md:137-140 references/edit.md:140-144 references/edit.md:144-147 references/edit.md:147-151 references/edit.md:151-154 references/edit.md:154-155 references/edit.md:155 references/edit.md:155 references/edit.md:155-156 references/edit.md:156-162 references/edit.md:162-164 references/edit.md:164-165 references/edit.md:165-172 references/edit.md:172-175 references/edit.md:175-183 references/edit.md:183-188 references/edit.md:188-192 references/edit.md:192-195 references/edit.md:195-199 references/edit.md:199-202 references/edit.md:202-203 references/edit.md:203 references/edit.md:203-204 references/edit.md:204 references/edit.md:204 references/edit.md:204 references/edit.md:204 references/edit.md:204 references/edit.md:204-205 references/edit.md:205 references/edit.md:205-206 references/edit.md:206-208 references/edit.md:208-214 references/edit.md:214 references/edit.md:214-217 references/edit.md:217-222 references/edit.md:222-225 references/edit.md:225-230 references/edit.md:230-233 references/edit.md:233-234 references/edit.md:234 references/edit.md:234-235 references/edit.md:235 references/edit.md:235-236 references/edit.md:236 references/edit.md:236-239 references/edit.md:239-243 references/edit.md:243-246 references/edit.md:246-251 references/edit.md:251-257 references/edit.md:257 references/edit.md:257-260 references/edit.md:260-268 references/edit.md:268-271 references/edit.md:271-285 references/edit.md:285-288 references/edit.md:288 references/edit.md:288 references/edit.md:288-289 references/edit.md:289 references/edit.md:289 references/edit.md:289-290 references/edit.md:290 references/edit.md:290-291 references/edit.md:291 references/edit.md:291-292 references/edit.md:292 references/edit.md:292 references/edit.md:292-293 references/edit.md:293 references/edit.md:293 references/edit.md:293-299 references/edit.md:299 references/edit.md:299 references/edit.md:299-302 references/edit.md:302-318 references/edit.md:318-321 references/edit.md:321-340 references/edit.md:340-345 references/edit.md:345-351 references/edit.md:351-355 references/edit.md:355-356 references/edit.md:356-362 references/edit.md:362-364 references/edit.md:364-369 references/edit.md:369-375 references/edit.md:375-378 references/edit.md:378-390 references/edit.md:390-392 references/edit.md:392 references/edit.md:392-395 references/edit.md:395-403 references/edit.md:403-406 references/edit.md:406-416 references/edit.md:416-421 references/edit.md:421-425 references/edit.md:425-428 references/edit.md:428-432 references/edit.md:432-435 references/edit.md:435 references/edit.md:435 references/edit.md:435 references/edit.md:435-436 references/edit.md:436-437 references/edit.md:437 references/edit.md:437-438 references/edit.md:438-439 references/edit.md:439-445 references/edit.md:445-447 references/edit.md:447-448 references/edit.md:448-450 references/edit.md:450-453 references/edit.md:453-455 references/edit.md:455-459 references/edit.md:459-460 references/edit.md:460-462 references/edit.md:462-465 references/edit.md:465-467 references/edit.md:467-470 references/edit.md:470-472 references/edit.md:472-475 references/edit.md:475-477 references/edit.md:477-480 references/edit.md:480 references/edit.md:480-481 references/edit.md:481-496 references/edit.md:496 references/edit.md:496 references/edit.md:496-497 references/edit.md:497 references/edit.md:497 references/edit.md:497-498 references/edit.md:498 references/edit.md:498 references/edit.md:498-499 references/edit.md:499 references/edit.md:499 references/edit.md:499-500 references/edit.md:500 references/edit.md:500 references/edit.md:500-501 references/edit.md:501 references/edit.md:501 references/edit.md:501-502 references/edit.md:502 references/edit.md:502 references/edit.md:502-503 references/edit.md:503-504 references/edit.md:504 references/edit.md:504 references/edit.md:504-505 references/edit.md:505 references/edit.md:505 references/edit.md:505 references/edit.md:505-509 references/edit.md:509-515 references/edit.md:515-517 references/edit.md:517 references/edit.md:517 references/edit.md:517 references/edit.md:517 references/edit.md:517 references/edit.md:517 references/edit.md:517 references/edit.md:517 references/edit.md:517 references/edit.md:517 references/edit.md:517-520 references/edit.md:520-523 references/edit.md:523-526 references/edit.md:526 references/edit.md:526-527 references/edit.md:527-528 references/edit.md:528-532 references/edit.md:532 references/edit.md:532-538 references/edit.md:538-540 references/edit.md:540-554 references/edit.md:554 references/edit.md:554 references/edit.md:554 references/edit.md:554 references/edit.md:554 references/edit.md:554-555 references/edit.md:555 references/edit.md:555 references/edit.md:555-556 references/edit.md:556 references/edit.md:556 references/edit.md:556-557 references/edit.md:557 references/edit.md:557-558 references/edit.md:558 references/edit.md:558 references/edit.md:558-562 references/edit.md:562 references/edit.md:562 references/edit.md:562 references/edit.md:562-565 references/edit.md:565-569 references/edit.md:569-572 references/edit.md:572-576 references/edit.md:576-579 references/edit.md:579-584 references/edit.md:584-587 references/edit.md:587-592 references/edit.md:592-598 references/edit.md:598 references/edit.md:598-599 references/edit.md:599 references/edit.md:599-600 references/edit.md:600 references/edit.md:600-601 references/edit.md:601 references/edit.md:601-603 references/edit.md:603-604 references/edit.md:604-609 references/edit.md:609-611 references/edit.md:611 references/edit.md:611-618 references/edit.md:618-628 references/edit.md:628-629 references/edit.md:629 references/edit.md:629-630 references/edit.md:630 references/edit.md:630 references/edit.md:630-631 references/edit.md:631-632 references/edit.md:632-633 references/edit.md:633 references/edit.md:633-639 references/edit.md:639 references/edit.md:639-640 references/edit.md:640 references/edit.md:640 references/edit.md:640-641 references/edit.md:641 references/edit.md:641 references/edit.md:641-649 references/edit.md:649-659 references/edit.md:659-661 references/edit.md:661-664 references/edit.md:664-667 references/edit.md:667-675 references/edit.md:675 references/edit.md:675-676 references/edit.md:676-677 references/edit.md:677 references/edit.md:677-678 references/edit.md:678-679 references/edit.md:679-682 references/fix.md:7-20 references/fix.md:20-26 references/fix.md:26 references/fix.md:26-27 references/fix.md:27 references/fix.md:27 references/fix.md:27-28 references/fix.md:28-29 references/fix.md:29-31 references/fix.md:31-36 references/fix.md:36-37 references/format.md:3 references/format.md:12 references/format.md:12 references/format.md:15 references/format.md:29 references/format.md:30 references/format.md:30 references/format.md:31 references/format.md:31 references/format.md:32 references/format.md:32 references/format.md:34 references/format.md:34 references/format.md:37-47 references/format.md:47-49 references/format.md:49-55 references/format.md:55-56 references/format.md:56-57 references/format.md:57-58 references/format.md:58-59 references/format.md:59-60 references/format.md:60-61 references/format.md:61-62 references/format.md:62-63 references/format.md:63-64 references/format.md:64-69 references/format.md:69 references/format.md:69-74 references/format.md:74-75 references/format.md:75-76 references/format.md:76-77 references/format.md:77-78 references/format.md:78-86 references/format.md:86-89 references/format.md:89-93 references/format.md:93-96 references/format.md:96-106 references/format.md:106 references/format.md:106-107 references/format.md:107 references/format.md:107-110 references/format.md:110-112 references/format.md:112-113 references/format.md:113-121 references/format.md:121 references/format.md:121 references/format.md:121 references/format.md:121 references/format.md:121 references/format.md:121 references/format.md:121 references/format.md:121-125 references/format.md:125-133 references/format.md:133-137 references/format.md:137-138 references/format.md:138-145 references/format.md:145-148 references/format.md:148 references/format.md:148-149 references/format.md:149-155 references/format.md:155-157 references/format.md:157-158 references/format.md:158-162 references/format.md:162-164 references/format.md:164 references/format.md:164-165 references/format.md:165-171 references/format.md:171-177 references/format.md:177-181 references/format.md:181-183 references/format.md:183-184 references/format.md:184-194 references/format.md:194-196 references/format.md:196-198 references/format.md:198-199 references/format.md:199-210 references/format.md:210-213 references/format.md:213-215 references/format.md:215-216 references/format.md:216-234 references/format.md:234-236 references/format.md:236 references/format.md:236-237 references/format.md:237-245 references/format.md:245-248 references/format.md:248-252 references/format.md:252-254 references/format.md:254-258 references/format.md:258-260 references/format.md:260 references/format.md:260-261 references/format.md:261-265 references/format.md:265-266 references/format.md:266-267 references/format.md:267-268 references/format.md:268-269 references/format.md:269-270 references/format.md:270-271 references/format.md:271-273 references/format.md:273 references/format.md:273 references/format.md:273-277 references/format.md:277-280 references/format.md:280-283 references/format.md:283 references/format.md:283-293 references/format.md:293 references/format.md:293-298 references/format.md:298-299 references/format.md:299-300 references/format.md:300-302 references/format.md:302-303 references/format.md:303-304 references/format.md:304-305 references/format.md:305-306 references/format.md:306-307 references/format.md:307-308 references/format.md:308-309 references/format.md:309 references/format.md:309-326 references/format.md:326-330 references/format.md:330-333 references/format.md:333-337 references/format.md:337-341 references/format.md:341-372 references/format.md:372-376 references/format.md:376-413 references/format.md:413-419 references/format.md:419-425 references/format.md:425-427 references/format.md:427-435 references/format.md:435-451 references/format.md:451-455 references/format.md:455-457 references/format.md:457-460 references/format.md:460-463 references/format.md:463-468 references/format.md:468 references/format.md:468-473 references/format.md:473-474 references/format.md:474-479 references/format.md:479-487 references/format.md:487-493 references/format.md:493-495 references/format.md:495-501 references/format.md:501-504 references/format.md:504-511 references/format.md:511-515 references/format.md:515-526 references/format.md:526-529 references/format.md:529-536 references/format.md:536-540 references/format.md:540-542 references/format.md:542-545 references/format.md:545-548 references/format.md:548-557 references/format.md:557-559 references/format.md:559-560 references/format.md:560-561 references/format.md:561-564 references/format.md:564-567 references/format.md:567 references/format.md:567 references/format.md:567-568 references/format.md:568-572 references/format.md:572 references/format.md:572-573 references/format.md:573 references/format.md:573-574 references/format.md:574 references/format.md:574-575 references/format.md:575 references/format.md:575-576 references/format.md:576 references/format.md:576-577 references/format.md:577-578 references/format.md:578 references/format.md:578-586 references/format.md:586 references/format.md:586-588 references/format.md:588-599 references/format.md:599-604 references/format.md:604 references/format.md:604-612 references/format.md:612-614 references/format.md:614-620 references/format.md:620-624 references/format.md:624 references/format.md:624 references/format.md:624-626 references/format.md:626-632 references/format.md:632-636 references/format.md:636 references/format.md:636-639 references/format.md:639-644 references/format.md:644-650 references/format.md:650-656 references/format.md:656-660 references/format.md:660-666 references/format.md:666-670 references/format.md:670 references/format.md:670-672 references/format.md:672-673 references/format.md:673-686 references/format.md:686-695 references/format.md:695-710 references/format.md:710-717 references/format.md:717-723 references/format.md:723-730 references/format.md:730-749 references/format.md:749-751 references/format.md:751-760 references/format.md:760 references/format.md:760-761 references/format.md:761-763 references/format.md:763 references/format.md:763 references/format.md:763-764 references/format.md:764-767 references/ooxml-cheatsheet.md:9-28 references/ooxml-cheatsheet.md:28-34 references/ooxml-cheatsheet.md:34-38 references/ooxml-cheatsheet.md:38-41 references/ooxml-cheatsheet.md:41-54 references/ooxml-cheatsheet.md:54-62 references/ooxml-cheatsheet.md:62-64 references/ooxml-cheatsheet.md:64-65 references/ooxml-cheatsheet.md:65 references/ooxml-cheatsheet.md:65-66 references/ooxml-cheatsheet.md:66 references/ooxml-cheatsheet.md:66-67 references/ooxml-cheatsheet.md:67 references/ooxml-cheatsheet.md:67-68 references/ooxml-cheatsheet.md:68 references/ooxml-cheatsheet.md:68-69 references/ooxml-cheatsheet.md:69-73 references/ooxml-cheatsheet.md:73-87 references/ooxml-cheatsheet.md:87-95 references/ooxml-cheatsheet.md:95-102 references/ooxml-cheatsheet.md:102-106 references/ooxml-cheatsheet.md:106 references/ooxml-cheatsheet.md:106 references/ooxml-cheatsheet.md:106-107 references/ooxml-cheatsheet.md:107-108 references/ooxml-cheatsheet.md:108 references/ooxml-cheatsheet.md:108 references/ooxml-cheatsheet.md:108-109 references/ooxml-cheatsheet.md:109-110 references/ooxml-cheatsheet.md:110-114 references/ooxml-cheatsheet.md:114 references/ooxml-cheatsheet.md:114-116 references/ooxml-cheatsheet.md:116-123 references/ooxml-cheatsheet.md:123-142 references/ooxml-cheatsheet.md:142-148 references/ooxml-cheatsheet.md:148-151 references/ooxml-cheatsheet.md:151-153 references/ooxml-cheatsheet.md:153-156 references/ooxml-cheatsheet.md:156-158 references/ooxml-cheatsheet.md:158-164 references/ooxml-cheatsheet.md:164 references/ooxml-cheatsheet.md:164-166 references/ooxml-cheatsheet.md:166-178 references/ooxml-cheatsheet.md:178-180 references/ooxml-cheatsheet.md:180 references/ooxml-cheatsheet.md:180-181 references/ooxml-cheatsheet.md:181-184 references/ooxml-cheatsheet.md:184-190 references/ooxml-cheatsheet.md:190-201 references/ooxml-cheatsheet.md:201-207 references/ooxml-cheatsheet.md:207-208 references/ooxml-cheatsheet.md:208-217 references/ooxml-cheatsheet.md:217-225 references/ooxml-cheatsheet.md:225 references/ooxml-cheatsheet.md:225-226 references/ooxml-cheatsheet.md:226 references/ooxml-cheatsheet.md:226-227 references/ooxml-cheatsheet.md:227 references/ooxml-cheatsheet.md:227-228 references/ooxml-cheatsheet.md:228 references/ooxml-cheatsheet.md:228-229 references/ooxml-cheatsheet.md:229 references/ooxml-cheatsheet.md:229-230 references/ooxml-cheatsheet.md:230 references/ooxml-cheatsheet.md:230-231 references/ooxml-cheatsheet.md:231 references/read-analyze.md:3 references/read-analyze.md:11 references/read-analyze.md:19 references/read-analyze.md:21-26 references/read-analyze.md:26-28 references/read-analyze.md:28 references/read-analyze.md:28 references/read-analyze.md:28 references/read-analyze.md:28-34 references/read-analyze.md:34-38 references/read-analyze.md:38-40 references/read-analyze.md:40-44 references/read-analyze.md:44-45 references/read-analyze.md:45-46 references/read-analyze.md:46-52 references/read-analyze.md:52 references/read-analyze.md:52-53 references/read-analyze.md:53-54 references/read-analyze.md:54-55 references/read-analyze.md:55-56 references/read-analyze.md:56-57 references/read-analyze.md:57-58 references/read-analyze.md:58-59 references/read-analyze.md:59 references/read-analyze.md:59-65 references/read-analyze.md:65-71 references/read-analyze.md:71-73 references/read-analyze.md:73 references/read-analyze.md:73 references/read-analyze.md:73-81 references/read-analyze.md:81 references/read-analyze.md:81-82 references/read-analyze.md:82-83 references/read-analyze.md:83-84 references/read-analyze.md:84-85 references/read-analyze.md:85 references/read-analyze.md:85-86 references/read-analyze.md:86-88 references/read-analyze.md:88 references/read-analyze.md:88-94 references/validate.md:9 references/validate.md:11 references/validate.md:11 references/validate.md:18-33 references/validate.md:33-37 references/validate.md:37 references/validate.md:37 references/validate.md:37-39 references/validate.md:39-40 references/validate.md:40 references/validate.md:40 references/validate.md:40-54 references/validate.md:54-56 references/validate.md:56-60 references/validate.md:60-62 references/validate.md:62-66 references/validate.md:66-68 references/validate.md:68-72 references/validate.md:72-74 references/validate.md:74-77 references/validate.md:77-78 references/validate.md:78-82 references/validate.md:82 references/validate.md:82 references/validate.md:82-86 references/validate.md:86 references/validate.md:86 references/validate.md:86-88 references/validate.md:88 references/validate.md:88 references/validate.md:88 references/validate.md:88-90 references/validate.md:90 references/validate.md:90 references/validate.md:90-92 references/validate.md:92 references/validate.md:92-94 references/validate.md:94 references/validate.md:94-96 references/validate.md:96 references/validate.md:96 references/validate.md:96 references/validate.md:96-97 references/validate.md:97-103 references/validate.md:103-111 references/validate.md:111-115 references/validate.md:115-134 references/validate.md:134-137 references/validate.md:137 references/validate.md:137 references/validate.md:137-138 references/validate.md:138 references/validate.md:138 references/validate.md:138-139 references/validate.md:139 references/validate.md:139-140 references/validate.md:140 references/validate.md:140 references/validate.md:140-144 references/validate.md:144-185 references/validate.md:185-191 references/validate.md:191 references/validate.md:191 references/validate.md:191-192 references/validate.md:192-193 references/validate.md:193 references/validate.md:193-194 references/validate.md:194 references/validate.md:194 references/validate.md:194-195 references/validate.md:195-196 references/validate.md:196-197 references/validate.md:197-198 references/validate.md:198 references/validate.md:198-199 references/validate.md:199 references/validate.md:199 references/validate.md:199-200 references/validate.md:200-201 references/validate.md:201-202 references/validate.md:202 references/validate.md:202-203 references/validate.md:203-204 references/validate.md:204 references/validate.md:204-210 references/validate.md:210-212 references/validate.md:212-214 references/validate.md:214 references/validate.md:214 references/validate.md:214 references/validate.md:214 references/validate.md:214-216 references/validate.md:216-218 references/validate.md:218-219 references/validate.md:219-225 references/validate.md:225-228 references/validate.md:228-232 references/validate.md:232-234 references/validate.md:234-236 references/validate.md:236-242 references/validate.md:242-244 references/validate.md:244 references/validate.md:244-250 references/validate.md:250-256 references/validate.md:256-258 references/validate.md:258 references/validate.md:258-260 references/validate.md:260-262 references/validate.md:262-268 references/validate.md:268-270 references/validate.md:270 references/validate.md:270 references/validate.md:270 references/validate.md:270-278 references/validate.md:278-286 references/validate.md:286-293 references/validate.md:293-295 references/validate.md:295-298 references/validate.md:298-300 references/validate.md:300-306 references/validate.md:306-315 references/validate.md:315-317 references/validate.md:317-318 references/validate.md:318-319 references/validate.md:319-320 references/validate.md:320-324 references/validate.md:324 references/validate.md:324 references/validate.md:324 references/validate.md:324-329 references/validate.md:329-331 references/validate.md:331-334 references/validate.md:334-336 references/validate.md:336-344 references/validate.md:344 references/validate.md:344 references/validate.md:344-346 references/validate.md:346-348 references/validate.md:348-362 references/validate.md:362 references/validate.md:362-366 references/validate.md:366-371 references/validate.md:371-374 references/validate.md:374-379 references/validate.md:379-381 references/validate.md:381 references/validate.md:381-392 references/validate.md:392 references/validate.md:392-393 references/validate.md:393-396 references/validate.md:396-401 references/validate.md:401-404 references/validate.md:404-409 references/validate.md:409-412 references/validate.md:412-417 references/validate.md:417-419 references/validate.md:419 references/validate.md:419-428 references/validate.md:428 references/validate.md:428-432 references/validate.md:432-437 references/validate.md:437-441 references/validate.md:441-442 references/validate.md:442-448 references/validate.md:448-450 references/validate.md:450-451 references/validate.md:451-456 references/validate.md:456-467 references/validate.md:467 references/validate.md:467 references/validate.md:467-468 references/validate.md:468-471 references/validate.md:471-476 references/validate.md:476-480 references/validate.md:480-481 references/validate.md:481-485 references/validate.md:485-487 references/validate.md:487 references/validate.md:487-488 references/validate.md:488-493 references/validate.md:493-508 references/validate.md:508-513 references/validate.md:513-516 references/validate.md:516-521 references/validate.md:521-523 references/validate.md:523-532 references/validate.md:532 references/validate.md:532-536 references/validate.md:536-541 references/validate.md:541-544 references/validate.md:544-550 references/validate.md:550-562 references/validate.md:562-566 references/validate.md:566-571 references/validate.md:571-574 references/validate.md:574-579 references/validate.md:579-582 references/validate.md:582-587 references/validate.md:587-589 references/validate.md:589-597 references/validate.md:597 references/validate.md:597-598 references/validate.md:598-599 references/validate.md:599-600 references/validate.md:600-601 references/validate.md:601-602 references/validate.md:602-603 references/validate.md:603-608 references/validate.md:608 references/validate.md:608-620 references/validate.md:620-671 references/validate.md:671-690 references/validate.md:690-692 references/validate.md:692-699 references/validate.md:699-701 references/validate.md:701 references/validate.md:701 references/validate.md:701 references/validate.md:701-707 references/validate.md:707-709 references/validate.md:709-720 references/validate.md:720-728 references/validate.md:728-749 references/validate.md:749-753 references/validate.md:753-759 references/validate.md:759-760 references/validate.md:760 references/validate.md:760-762 references/validate.md:762-763 references/validate.md:763-766 references/validate.md:766 references/validate.md:766 references/validate.md:766-769 references/validate.md:769 references/validate.md:769 references/validate.md:769-771 references/validate.md:771-772 references/validate.md:772 references/validate.md:299 references/validate.md:335 scripts/libreoffice_recalc.py:61 scripts/libreoffice_recalc.py:114 scripts/libreoffice_recalc.py:92 scripts/libreoffice_recalc.py:212 scripts/xlsx_insert_row.py:169 scripts/xlsx_shift_rows.py:82 scripts/xlsx_shift_rows.py:82 SKILL.md:21 SKILL.md:21 SKILL.md:22 SKILL.md:22 SKILL.md:23 SKILL.md:23 SKILL.md:24 SKILL.md:24 SKILL.md:25 SKILL.md:25 SKILL.md:27 SKILL.md:29 SKILL.md:31 SKILL.md:31 SKILL.md:31 SKILL.md:33 SKILL.md:35 SKILL.md:35 SKILL.md:37 SKILL.md:37 SKILL.md:37 SKILL.md:37 SKILL.md:39 SKILL.md:42 SKILL.md:45 SKILL.md:45 SKILL.md:49 SKILL.md:50-56 SKILL.md:56-59 SKILL.md:59-67 SKILL.md:67-68 SKILL.md:68-71 SKILL.md:71-82 SKILL.md:82-83 SKILL.md:83 SKILL.md:83 SKILL.md:83 SKILL.md:83-86 SKILL.md:86 SKILL.md:86 SKILL.md:86 SKILL.md:86 SKILL.md:86 SKILL.md:86 SKILL.md:86 SKILL.md:86-87 SKILL.md:87-93 SKILL.md:93-97 SKILL.md:97-101 SKILL.md:101-103 SKILL.md:103-105 SKILL.md:105-107 SKILL.md:107-109 SKILL.md:109 SKILL.md:109-115 SKILL.md:115-116 SKILL.md:116-117 SKILL.md:117-122 SKILL.md:122-125 SKILL.md:125-129 SKILL.md:129-138 templates/minimal_xlsx/xl/sharedStrings.xml:13 templates/minimal_xlsx/xl/sharedStrings.xml:13
🌐 Network access (50)
references/create.md:133 references/create.md:135 references/create.md:138 references/create.md:141 references/create.md:144 references/create.md:147 references/create.md:155 references/create.md:180 references/create.md:181 references/create.md:186 references/create.md:215 references/ooxml-cheatsheet.md:176 scripts/formula_check.py:37 scripts/formula_check.py:44 scripts/formula_check.py:64 scripts/shared_strings_builder.py:36 scripts/style_audit.py:34 scripts/style_audit.py:407 scripts/style_audit.py:447 scripts/xlsx_add_column.py:35 scripts/xlsx_add_column.py:36 scripts/xlsx_add_column.py:40 scripts/xlsx_add_column.py:41 scripts/xlsx_add_column.py:42 scripts/xlsx_add_column.py:43 scripts/xlsx_add_column.py:114 scripts/xlsx_insert_row.py:37 scripts/xlsx_insert_row.py:38 scripts/xlsx_insert_row.py:42 scripts/xlsx_insert_row.py:43 scripts/xlsx_insert_row.py:44 scripts/xlsx_insert_row.py:45 scripts/xlsx_insert_row.py:108 scripts/xlsx_shift_rows.py:147 scripts/xlsx_shift_rows.py:148 SKILL.md:15 templates/minimal_xlsx/_rels/.rels:2 templates/minimal_xlsx/_rels/.rels:4 templates/minimal_xlsx/[Content_Types].xml:2 templates/minimal_xlsx/xl/_rels/workbook.xml.rels:9 templates/minimal_xlsx/xl/_rels/workbook.xml.rels:11 templates/minimal_xlsx/xl/_rels/workbook.xml.rels:14 templates/minimal_xlsx/xl/_rels/workbook.xml.rels:17 templates/minimal_xlsx/xl/sharedStrings.xml:26 templates/minimal_xlsx/xl/styles.xml:37 templates/minimal_xlsx/xl/workbook.xml:17 templates/minimal_xlsx/xl/workbook.xml:18 templates/minimal_xlsx/xl/worksheets/sheet1.xml:36 templates/minimal_xlsx/xl/worksheets/sheet1.xml:37 templates/minimal_xlsx/xl/worksheets/sheet1.xml:45
📁 Filesystem access (123)
references/create.md:125 references/create.md:200 references/create.md:62 references/create.md:68 references/create.md:251 references/create.md:258 references/create.md:492 references/edit.md:397 references/edit.md:398 references/edit.md:399 references/edit.md:400 references/edit.md:401 references/edit.md:408 references/edit.md:409 references/edit.md:410 references/edit.md:411 references/edit.md:412 references/edit.md:50 references/edit.md:74 references/edit.md:83 references/edit.md:125 references/edit.md:476 references/edit.md:511 references/edit.md:514 references/edit.md:521 references/edit.md:651 references/edit.md:657 references/edit.md:658 references/fix.md:12 references/fix.md:18 references/format.md:547 references/format.md:456 references/format.md:461 references/format.md:461 references/format.md:462 references/format.md:520 references/format.md:524 references/format.md:524 references/format.md:525 references/format.md:531 references/format.md:535 references/format.md:541 references/format.md:546 references/ooxml-cheatsheet.md:108 references/validate.md:104 references/validate.md:116 references/validate.md:146 references/validate.md:211 references/validate.md:252 references/validate.md:255 references/validate.md:311 references/validate.md:314 references/validate.md:347 references/validate.md:697 references/validate.md:698 references/validate.md:730 references/validate.md:733 references/validate.md:736 references/validate.md:739 references/validate.md:739 references/validate.md:744 references/validate.md:745 scripts/formula_check.py:115 scripts/formula_check.py:118 scripts/formula_check.py:356 scripts/formula_check.py:31 scripts/formula_check.py:60 scripts/formula_check.py:73 scripts/formula_check.py:85 scripts/formula_check.py:174 scripts/formula_check.py:175 scripts/libreoffice_recalc.py:179 scripts/libreoffice_recalc.py:180 scripts/libreoffice_recalc.py:28 scripts/libreoffice_recalc.py:99 scripts/libreoffice_recalc.py:101 scripts/libreoffice_recalc.py:156 scripts/libreoffice_recalc.py:155 scripts/shared_strings_builder.py:140 scripts/shared_strings_builder.py:19 scripts/style_audit.py:128 scripts/style_audit.py:16 scripts/style_audit.py:31 scripts/style_audit.py:27 scripts/style_audit.py:401 scripts/xlsx_add_column.py:181 scripts/xlsx_add_column.py:225 scripts/xlsx_add_column.py:8 scripts/xlsx_add_column.py:58 scripts/xlsx_insert_row.py:8 scripts/xlsx_insert_row.py:60 scripts/xlsx_pack.py:18 scripts/xlsx_pack.py:70 scripts/xlsx_pack.py:70 scripts/xlsx_shift_rows.py:250 scripts/xlsx_shift_rows.py:300 scripts/xlsx_unpack.py:40 scripts/xlsx_unpack.py:79 scripts/xlsx_unpack.py:70 scripts/xlsx_unpack.py:43 scripts/xlsx_unpack.py:53 scripts/xlsx_unpack.py:57 scripts/xlsx_unpack.py:44 scripts/xlsx_unpack.py:16 scripts/xlsx_unpack.py:47 scripts/xlsx_unpack.py:56 scripts/xlsx_unpack.py:55 SKILL.md:51 SKILL.md:55 SKILL.md:60 SKILL.md:61 SKILL.md:66 SKILL.md:72 SKILL.md:77 SKILL.md:81 SKILL.md:83 SKILL.md:98 SKILL.md:100 SKILL.md:133 SKILL.md:134 SKILL.md:135 SKILL.md:136 SKILL.md:137
Audited by: claude

Quality Score

68
Architecture
100
Maintainability
87
Content
50
Community
91
Security
91
Spec Compliance

What You Can Build

Financial Model Creation

Build professional financial models with color-coded inputs, formulas, and cross-sheet references following banking and accounting standards.

Spreadsheet Data Editing Without Format Loss

Modify existing Excel files while preserving all formatting, charts, conditional formatting, and formulas that openpyxl would destroy on round-trip.

Spreadsheet Validation and Audit

Check spreadsheets for broken formulas, invalid cross-sheet references, and formatting compliance before sharing with stakeholders.

Try These Prompts

Create Financial Model
Create a financial model spreadsheet with revenue projections, expense breakdown, and profit calculations. Use blue cells for hard-coded inputs, black for formulas, and green for cross-sheet references. Include a summary sheet and detailed monthly breakdown.
Edit Existing Spreadsheet
Open the file 'quarterly_report.xlsx', add a new column for Q4 projections after the Q3 column, and update the total formulas to include the new column. Preserve all existing formatting and styles.
Validate Spreadsheet Formulas
Check my spreadsheet 'budget.xlsx' for any broken formulas, invalid cross-sheet references, or formatting violations. Report all issues found.
Read and Analyze Data
Read the file 'sales_data.csv', analyze the structure, identify key metrics, and summarize the data patterns. Tell me how many rows and columns, what the headers are, and any notable observations.

Best Practices

  • Always use the XML unpack-edit-pack workflow (never openpyxl round-trip) when editing existing spreadsheets to preserve all formatting, styles, and formulas
  • Apply financial color standards consistently: blue (RGB 000000FF) for hardcoded inputs, black (RGB 00000000) for computed formulas, green (RGB 00008000) for cross-sheet references
  • Run formula validation (formula_check.py) after any spreadsheet edits to catch broken references, error values, and shared formula integrity issues before delivering the file

Avoid

  • Never create a new Workbook() from openpyxl to edit existing files -- this destroys all existing formatting, styles, charts, and conditional formatting
  • Never skip the unzip step when editing xlsx files -- attempting to modify xlsx without unpacking corrupts the archive and loses data
  • Never ignore formula validation results -- unvalidated spreadsheets may contain silent errors (#REF!, #DIV/0!, broken named ranges) that undermine financial analysis

Frequently Asked Questions

Why doesn't this skill use openpyxl to edit existing spreadsheets?
openpyxl destroys formatting when round-tripping: it loses styles, charts, conditional formatting, data validation rules, and other OOXML features. This skill uses an XML-level workflow (unpack xlsx, edit XML, repack) that preserves 100% of the original file's formatting and structure.
How does formula recalculation work?
The skill uses a two-tier approach: Tier 1 performs static formula validation (checking for #REF!, #DIV/0!, broken references) using Python XML parsing. Tier 2 dynamically recalculates formulas by opening the file in LibreOffice Calc headless mode, which computes all formulas, then saves the result. Tier 2 requires LibreOffice to be installed.
Can this skill read and modify .xlsm (macro-enabled) files?
Yes. The skill can read, edit data, and validate formulas in .xlsm files. However, it does not create or modify VBA macros -- it works with the spreadsheet data, formulas, and formatting layers. The macro content is preserved during the unpack-edit-pack workflow.
What financial formatting standards does this skill apply?
It uses a color-coding system: blue cells for hardcoded input values, black cells for computed formulas, and green cells for cross-sheet references. It also supports accounting-style borders, percentage formatting, year formats, and currency formats consistent with professional financial modeling standards.
Is it safe to run LibreOffice headless on my spreadsheet?
Yes. LibreOffice headless mode opens the file, recalculates all formulas, and saves -- it does not execute macros or external connections by default. The skill uses --norestore and --headless flags for safety, and runs in an isolated temporary directory.
What file formats does this skill support?
Primary formats: .xlsx (standard Excel), .xlsm (macro-enabled Excel). It also supports .csv and .tsv for reading and tabular data operations. The skill can also produce TSV output when requested.