Advanced Excel lets ODC apps create, read, and manipulate `.xlsx` workbooks without a
spreadsheet engine of your own. It wraps [EPPlus](https://github.com/EPPlusSoftware/EPPlus) and
exposes all actions and structures of the original O11 `Advanced_Excel` extension,
reshaped for ODC's stateless model - so logic that used to run inside an on-prem extension now
runs the same way in an ODC app.
Once added as a dependency, the actions appear under AdvancedExcel in ODC Studio's Logic tab,
grouped by area: Workbook, Worksheet, Cell, Row/Column, Range, CellFormat, Chart, PivotTable,
Picture, ConditionalFormatting, and Sparkline.
How it works.
ODC has no `Object` data type to hold a live workbook handle between calls, so a
workbook travels as `.xlsx` binary data instead. Every action opens the workbook it's given, does
one thing, and returns the updated bytes — you chain that output into the next action's input:
```
Workbook_Create (NumberOfSheets: 1, FirstSheetName: "Data") → WorkbookData
Cell_Write (WorkbookData, CellName: "A1", CellValue: "Hi") → UpdatedWorkbook
Worksheet_AutofitColumns (UpdatedWorkbook) → UpdatedWorkbook
Drop the chain and the change is lost — nothing is cached between calls, which is what makes this
safe on ODC, where consecutive requests can land on different containers. Where you're touching
many cells at once, prefer the batch actions (`Worksheet_WriteCells`, `Cell_WriteRange`,
`Worksheet_ReadRange`, `CellFormat_ApplyToRange`) over calling a per-cell action in a loop — every
call parses and re-serializes the whole file.
Passwords work the same way: only `Workbook_Open` / `Workbook_Open_BinaryData` (decrypt) and
`Workbook_SaveWithPassword` (encrypt) take a `Password` input. Every other action expects plain
bytes, and will fail with a clear message if it's handed an encrypted file directly.