Modules
Pure-Elixir reader and editor for .xlsx / .xlsm workbooks.
Absolute-or-relative A1-style cell references, as they appear inside Excel formula tokens.
Turns a list of ExVEx.Formula.Token records back into the formula
string. Each token carries its canonical textual form in the :text
field (populated by the tokenizer) OR derived from structured fields
after a shift operation.
Applies a %ExVEx.Mutation.Shift{} to a token stream produced by
ExVEx.Formula.Tokenizer, rewriting cell and range references so
they continue to point at the same logical cells after the shift.
A single token produced by ExVEx.Formula.Tokenizer. Every formula is
a flat list of these tokens, preserving enough structure for
shift-on-insert/delete to walk the stream and rewrite cell references.
Tokenises an Excel formula string into a flat list of
ExVEx.Formula.Token records.
A row/column insertion or deletion expressed as a single data record.
Cascades a %ExVEx.Mutation.Shift{} through an <autoFilter> node by
rewriting its ref attribute (a single rectangular range).
Parse, shift, and serialize an xl/comments*.xml part.
Cascades a %ExVEx.Mutation.Shift{} through a <conditionalFormatting>
SimpleForm node: its sqref attribute (space-separated ranges) and any
<formula> text inside child <cfRule> elements.
Cascades a %ExVEx.Mutation.Shift{} through a <dataValidations> node:
the sqref attribute and any <formula1> / <formula2> text children
of each child <dataValidation> element.
Parse, shift, and serialize an xl/drawings/drawing*.xml part.
The shared string table (xl/sharedStrings.xml).
Cascades a %ExVEx.Mutation.Shift{} into the satellite parts linked
from a worksheet's .rels file — comments, tables, and drawings.
Shifts an OOXML sqref string — a space-separated list of cell
references and/or rectangular ranges (e.g. "A1:B2 D4 F1:F10") — under
a %ExVEx.Mutation.Shift{}.
Parser for xl/styles.xml.
Raw alignment attributes attached to an <xf> in xl/styles.xml. This
is the internal OOXML-shaped representation; end users read alignment
off the flattened %ExVEx.Style.Alignment{} returned by
ExVEx.get_style/3.
A single <xf> record from cellXfs. Cells reference these by index via
the s attribute (<c r="A1" s="3"/> → cell_formats[3]).
A custom number format declared in xl/styles.xml. IDs 0..163 are
reserved for built-in formats defined by the OOXML spec; IDs 164 and
above are custom formats authored by the workbook.
Parse, shift, and serialize an xl/tables/table*.xml part.
Parser for xl/workbook.xml — the per-workbook manifest of sheets.
A single <definedName> record from xl/workbook.xml. Named ranges
and named formulas live here.
A reference to a worksheet as declared in xl/workbook.xml.
Parser and surgical mutator for xl/worksheets/sheet*.xml.
The raw, untyped-value form of a cell as it lives in worksheet XML.
ETS-backed editable representation of a worksheet. The parsed SimpleForm tree is converted on first access and materialised back to a tree at serialise time.
The [Content_Types].xml manifest that lives at the root of every OPC
package.
A default content type mapping: every part whose path ends in extension
has content_type unless overridden.
A per-part content type override. part_name is an absolute path with a
leading / (e.g. "/xl/workbook.xml") per the OPC spec.
An OPC .rels file — a graph of <Relationship> records linking parts
of the package together.
A single <Relationship> record: an opaque id, a type URI, and a
target path that is resolved relative to the directory containing
the .rels file that declared it.
Archive IO for the Open Packaging Convention container used by .xlsx /
.xlsm / .xltx files.
A single member of an xlsx ZIP archive — a path inside the package and the
raw bytes at that path. Directory entries (zero-length, name ending in /)
are dropped by :zip.unzip/2 and are not represented here.
A resolved, flattened style for a single cell.
Alignment and wrapping options declared on a <xf> record.
The four sides of a cell border as %ExVEx.Style.Side{} records.
Translates the keyword-style options accepted by ExVEx.put_style/4
into updated %Font{}, %Fill{}, %Border{}, %Alignment{} records,
merging with the cell's existing style.
A colour reference from the OOXML style model. Colours can be declared as a concrete RGB value, a reference to a theme palette entry, or a reference to the legacy indexed palette.
A fill record (the cell background) — a pattern type plus optional foreground and background colours.
A font record from xl/styles.xml — a name, size, colour, and the usual
decoration flags.
One side of a cell border: a line style and a colour.
A1-style cell coordinate parsing and emission.
Rectangular cell ranges ("A1:B2" in Excel's notation).
The in-memory representation of a workbook.
Mix Tasks
Runs the rotating 4-phase xlsx benchmark across Elixir / Python / Rust.