export interface Area { sheet: number; row: number; column: number; width: number; height: number; } export enum BorderType { All = "All", Inner = "Inner", Outer = "Outer", Top = "Top", Right = "Right", Bottom = "Bottom", Left = "Left", CenterH = "CenterH", CenterV = "CenterV", None = "None", } export interface BorderArea { item: BorderItem; type: BorderType; } type ErrorType = | "REF" | "NAME" | "VALUE" | "DIV" | "NA" | "NUM" | "ERROR" | "NIMPL" | "SPILL" | "CALC" | "CIRC"; type OpCompareType = | "LessThan" | "GreaterThan" | "Equal" | "LessOrEqualThan" | "GreaterOrEqualThan" | "NonEqual"; type OpSumType = "Add" | "Minus"; type OpProductType = "Times" | "Divide"; interface ReferenceType { sheet: string | null; row: number; column: number; absolute_column: boolean; absolute_row: boolean; } interface ParsedReferenceType { column: number; row: number; absolute_column: boolean; absolute_row: boolean; } interface Reference { Reference: ReferenceType; } interface Range { Range: { sheet: string | null; left: ParsedReferenceType; right: ParsedReferenceType; }; } export type TokenType = | "Illegal" | "Eof" | { Ident: string } | { String: string } | { Boolean: boolean } | { Number: number } | { ERROR: ErrorType } | { COMPARE: OpCompareType } | { SUM: OpSumType } | { PRODUCT: OpProductType } | "POWER" | "LPAREN" | "RPAREN" | "COLON" | "SEMICOLON" | "LBRACKET" | "RBRACKET" | "LBRACE" | "RBRACE" | "COMMA" | "BANG" | "PERCENT" | "AND" | Reference | Range; export interface MarkedToken { token: TokenType; start: number; end: number; } export interface WorksheetProperties { name: string; color: string; sheet_id: number; } interface CellStyleFill { pattern_type: string; fg_color?: string; bg_color?: string; } interface CellStyleFont { u: boolean; b: boolean; i: boolean; strike: boolean; sz: number; color: string; name: string; family: number; scheme: string; } // export enum BorderType { // BorderAll, // BorderInner, // BorderCenterH, // BorderCenterV, // BorderOuter, // BorderNone, // BorderTop, // BorderRight, // BorderBottom, // BorderLeft, // None, // } export interface BorderOptions { color: string; style: BorderStyle; border: BorderType; } export enum BorderStyle { Thin = "thin", Medium = "medium", Thick = "thick", Dashed = "dashed", Dotted = "dotted", Double = "double", None = "none", } interface BorderItem { style: string; color: string; } interface CellStyleBorder { diagonal_up?: boolean; diagonal_down?: boolean; left: BorderItem; right: BorderItem; top: BorderItem; bottom: BorderItem; diagonal: BorderItem; } export type VerticalAlignment = | "bottom" | "center" | "distributed" | "justify" | "top"; export type HorizontalAlignment = | "left" | "center" | "right" | "general" | "centerContinuous" | "distributed" | "fill" | "justify"; interface Alignment { horizontal: HorizontalAlignment; vertical: VerticalAlignment; wrap_text: boolean; } export interface CellStyle { read_only: boolean; quote_prefix: boolean; fill: CellStyleFill; font: CellStyleFont; border: CellStyleBorder; num_fmt: string; alignment?: Alignment; } export interface SelectedView { sheet: number; row: number; column: number; range: [number, number, number, number]; top_row: number; left_column: number; }