/** * Parse / serialize SpreadsheetML workbook part (`CT_Workbook`). * * Citations: * - `CT_Workbook`, `CT_Sheets`, `CT_Sheet`, `CT_WorkbookPr`, `ST_SheetState`: * `specs/schemas/xsd/OfficeOpenXML-XMLSchema-Transitional/sml.xsd` * - `date1904` default false: same schema + ECMA-376-1 workbookPr * - `definedNames` order after sheets/functionGroups/externalReferences: * transitional sml.xsd `CT_Workbook` sequence * * Unknown workbook children are preserved as ordered XML snippets. * * @private */ import { DefinedNameEntry } from './defined-names'; import { WorkbookProtectionModel } from './workbook-protection'; /** Specifies whether a sheet is visible, hidden, or very hidden. */ export declare type SheetVisibility = 'visible' | 'hidden' | 'veryHidden'; /** Distinguishes a normal worksheet from another kind of sheet, such as a chartsheet. */ export declare type SheetKind = 'worksheet' | 'other'; /** * One `sheet` entry from `CT_Sheets`. */ export interface SheetXmlEntry { readonly name: string; readonly sheetId: number; readonly relId: string; readonly state: SheetVisibility; /** Raw attribute text for unknown attrs (name=value pairs already escaped). */ readonly extraAttrsXml: string; } /** * Parsed workbook.xml model (structure only). */ export interface WorkbookXmlModel { readonly date1904: boolean; /** Raw `workbookPr` element inner attribute remainder excluding date1904 (for preserve). */ readonly workbookPrExtraAttrsXml: string | undefined; /** True when a workbookPr element was present on read. */ readonly hasWorkbookPr: boolean; /** * Workbook structure/windows protection (`CT_WorkbookProtection`). * Absent when no `workbookProtection` element was present / authored. */ readonly workbookProtection: WorkbookProtectionModel | undefined; readonly sheets: ReadonlyArray; /** Defined name entries (`CT_DefinedNames`); empty when absent. */ readonly definedNames: ReadonlyArray; /** * Ordered non-modeled top-level child XML (excluding sheets, workbookPr, * workbookProtection, definedNames), each a full element string including tags. */ readonly preserveChildrenXml: ReadonlyArray; /** Namespace declarations found on the root (excluding xmlns default and r), raw. */ readonly rootExtraxmlnsXml: string; /** Zero-based active worksheet index from `bookViews/workbookView@activeTab`. */ readonly activeTab: number; } /** * Parse workbook part bytes into a structure model. */ export declare function parseWorkbookXml(bytes: Uint8Array, partName: string): WorkbookXmlModel; /** * Serialize workbook structure to Transitional SpreadsheetML bytes. * * Child order follows CT_Workbook ranks: preserve peers before `workbookPr` * (e.g. `fileVersion`), then modeled `workbookPr` when needed, then remaining * pre-`sheets` peers (`bookViews`, MC/revision markers, …). `sheets` and * `definedNames` split later bands so mutual order of unknown siblings is kept. */ export declare function serializeWorkbookXml(model: WorkbookXmlModel): Uint8Array; /** * Minimal empty worksheet part (Transitional) with empty sheetData. */ export declare function emptyWorksheetXml(): string;