Skip to content

StyleManager

Manages a workbook’s styles array with efficient deduplication.

This class stores complete styles including number format properties. Cell objects can override these formats using their userZ/formulaZ properties.

The cache uses property-based keys (sorted properties + values) rather than JSON.stringify to ensure deterministic hashing regardless of property insertion order.

new StyleManager(initialStyles): StyleManager;

Creates a new StyleManager.

StyleRelaxed[] = []

Optional array of styles to initialize with. The cache will be pre-populated for these styles.

StyleManager

get length(): number;

Get the number of styles in the array.

number

findOrCreate(style): number;

Find an existing style or create a new one.

This method first checks the cache for an exact match. If found, returns the existing style’s index. If not found, appends the style to the array, updates the cache, and returns the new index.

StyleRelaxed

The style object to find or create

number

The index of the style in the styles array


get(index): StyleRelaxed | null;

Get a style by its index.

number

Zero-based index into the styles array

StyleRelaxed | null

The style object, or null if the index is out of bounds


toArray(): readonly StyleRelaxed[];

Get a list of all defined styles.

Returns the internal array, typed as readonly to prohibit external code from modifying the array without updating the cache.

readonly StyleRelaxed[]

Readonly array of styles