spreadsheetslisted
Install: claude install-skill brightwave-inc/tidebreak
# Spreadsheets
Produce XLSX deliverables with **openpyxl**, and edit workbooks that already
exist with **LibreOffice Calc**. Follow every section below before declaring
a workbook done.
## Never round-trip an existing workbook with openpyxl
**openpyxl writes new workbooks. It never touches a file that already
exists** — not to change one number, not for a "quick value edit".
`load_workbook(path)` followed by `.save(path)` does not edit the file; it
rebuilds it from the parts openpyxl models, and everything else is gone. In
practice that means silently losing:
- **formula results** the engine computed — openpyxl drops the cached values,
so every formula reads as empty until someone opens the file in Excel
- named ranges, pivot tables and their caches
- charts, images, and shapes
- conditional formatting and data validation
- macros, custom styles, and sheet protection
None of this raises an error. The file saves, looks plausible in an
inspection script, and hands the user a gutted copy of their own workbook.
Read-only inspection is fine and expected: `load_workbook(path,
read_only=True)` or `data_only=True`, with no `.save()` anywhere near it. The
bundled `analyze_xlsx.py` does exactly this.
## Installing the library
Install the pinned dependency with its own `exec` call — commands have a
bounded wall clock, and one `pip` invocation per package stays inside it:
```
python3 -m pip install --user openpyxl==3.1.5
```
Installs work only when this chat's network policy