| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000200120022003200420052006200720082009201020112012201320142015201620172018 |
- declare interface Buffer extends ArrayBuffer { }
- export declare enum RelationshipType {
- None = 0,
- OfficeDocument = 1,
- Worksheet = 2,
- CalcChain = 3,
- SharedStrings = 4,
- Styles = 5,
- Theme = 6,
- Hyperlink = 7
- }
- export declare enum DocumentType {
- Xlsx = 1
- }
- export const enum PaperSize {
- Legal = 5,
- Executive = 7,
- A4 = 9,
- A5 = 11,
- B5 = 13,
- Envelope_10 = 20,
- Envelope_DL = 27,
- Envelope_C5 = 28,
- Envelope_B5 = 34,
- Envelope_Monarch = 37,
- Double_Japan_Postcard_Rotated = 82,
- K16_197x273_mm = 119,
- }
- export interface WorksheetViewCommon {
- /**
- * Sets the worksheet view's orientation to right-to-left, `false` by default
- */
- rightToLeft: boolean;
- /**
- * The currently selected cell
- */
- activeCell: string;
- /**
- * Shows or hides the ruler in Page Layout, `true` by default
- */
- showRuler: boolean;
- /**
- * Shows or hides the row and column headers (e.g. A1, B1 at the top and 1,2,3 on the left,
- * `true` by default
- */
- showRowColHeaders: boolean;
- /**
- * Shows or hides the gridlines (shown for cells where borders have not been defined),
- * `true` by default
- */
- showGridLines: boolean;
- /**
- * Percentage zoom to use for the view, `100` by default
- */
- zoomScale: number;
- /**
- * Normal zoom for the view, `100` by default
- */
- zoomScaleNormal: number;
- }
- export interface WorksheetViewNormal {
- /**
- * Controls the view state
- */
- state: 'normal';
- /**
- * Presentation style
- */
- style: 'pageBreakPreview' | 'pageLayout';
- }
- export interface WorksheetViewFrozen {
- /**
- * Where a number of rows and columns to the top and left are frozen in place.
- * Only the bottom left section will scroll
- */
- state: 'frozen';
- /**
- * Presentation style
- */
- style?: 'pageBreakPreview';
- /**
- * How many columns to freeze. To freeze rows only, set this to 0 or undefined
- */
- xSplit?: number;
- /**
- * How many rows to freeze. To freeze columns only, set this to 0 or undefined
- */
- ySplit?: number;
- /**
- * Which cell will be top-left in the bottom-right pane. Note: cannot be a frozen cell.
- * Defaults to first unfrozen cell
- */
- topLeftCell?: string;
- }
- export interface WorksheetViewSplit {
- /**
- * Where the view is split into 4 sections, each semi-independently scrollable.
- */
- state: 'split';
- /**
- * Presentation style
- */
- style?: 'pageBreakPreview' | 'pageLayout';
- /**
- * How many points from the left to place the splitter.
- * To split vertically, set this to 0 or undefined
- */
- xSplit?: number;
- /**
- * How many points from the top to place the splitter.
- * To split horizontally, set this to 0 or undefined
- */
- ySplit?: number;
- /**
- * Which cell will be top-left in the bottom-right pane
- */
- topLeftCell?: string;
- /**
- * Which pane will be active
- */
- activePane?: 'topLeft' | 'topRight' | 'bottomLeft' | 'bottomRight';
- }
- export type WorksheetView =
- & WorksheetViewCommon
- & (WorksheetViewNormal | WorksheetViewFrozen | WorksheetViewSplit);
- export interface WorkbookView {
- x: number;
- y: number;
- width: number;
- height: number;
- firstSheet: number;
- activeTab: number;
- visibility: string;
- }
- export type FillPatterns =
- | 'none' | 'solid'
- | 'darkVertical' | 'darkHorizontal' | 'darkGrid' | 'darkTrellis' | 'darkDown' | 'darkUp'
- | 'lightVertical' | 'lightHorizontal' | 'lightGrid' | 'lightTrellis' | 'lightDown' | 'lightUp'
- | 'darkGray' | 'mediumGray' | 'lightGray' | 'gray125' | 'gray0625';
- export interface FillPattern {
- type: 'pattern';
- pattern: FillPatterns;
- fgColor?: Partial<Color>;
- bgColor?: Partial<Color>;
- }
- export interface GradientStop {
- position: number;
- color: Partial<Color>;
- }
- export interface FillGradientAngle {
- type: 'gradient';
- gradient: 'angle';
- /**
- * For 'angle' gradient, specifies the direction of the gradient. 0 is from the left to the right.
- * Values from 1 - 359 rotates the direction clockwise
- */
- degree: number;
- /**
- * Specifies the gradient colour sequence. Is an array of objects containing position and
- * color starting with position 0 and ending with position 1.
- * Intermediary positions may be used to specify other colours on the path.
- */
- stops: GradientStop[];
- }
- export interface FillGradientPath {
- type: 'gradient';
- gradient: 'path';
- /**
- * For 'path' gradient. Specifies the relative coordinates for the start of the path.
- * 'left' and 'top' values range from 0 to 1
- */
- center: { left: number; top: number };
- /**
- * Specifies the gradient colour sequence. Is an array of objects containing position and
- * color starting with position 0 and ending with position 1.
- * Intermediary positions may be used to specify other colours on the path.
- */
- stops: GradientStop[];
- }
- export type Fill = FillPattern | FillGradientAngle | FillGradientPath;
- export interface Font {
- name: string;
- size: number;
- family: number;
- scheme: 'minor' | 'major' | 'none';
- charset: number;
- color: Partial<Color>;
- bold: boolean;
- italic: boolean;
- underline: boolean | 'none' | 'single' | 'double' | 'singleAccounting' | 'doubleAccounting';
- vertAlign: 'superscript' | 'subscript';
- strike: boolean;
- outline: boolean;
- }
- export type BorderStyle =
- | 'thin' | 'dotted' | 'hair' | 'medium' | 'double' | 'thick' | 'dashDot'
- | 'dashDotDot' | 'slantDashDot' | 'mediumDashed' | 'mediumDashDotDot' | 'mediumDashDot';
- export interface Color {
- /**
- * Hex string for alpha-red-green-blue e.g. FF00FF00
- */
- argb: string;
- /**
- * Choose a theme by index
- */
- theme: number;
- }
- export interface Border {
- style: BorderStyle;
- color: Partial<Color>;
- }
- export interface BorderDiagonal extends Border {
- up: boolean;
- down: boolean;
- }
- export interface Borders {
- top: Partial<Border>;
- left: Partial<Border>;
- bottom: Partial<Border>;
- right: Partial<Border>;
- diagonal: Partial<BorderDiagonal>;
- }
- export interface Margins {
- top: number;
- left: number;
- bottom: number;
- right: number;
- header: number;
- footer: number;
- }
- export declare enum ReadingOrder {
- LeftToRight = 1,
- RightToLeft = 2,
- }
- export interface Alignment {
- horizontal: 'left' | 'center' | 'right' | 'fill' | 'justify' | 'centerContinuous' | 'distributed';
- vertical: 'top' | 'middle' | 'bottom' | 'distributed' | 'justify';
- wrapText: boolean;
- shrinkToFit: boolean;
- indent: number;
- readingOrder: 'rtl' | 'ltr';
- textRotation: number | 'vertical';
- }
- export interface Protection {
- locked: boolean;
- }
- export interface Style {
- numFmt: string;
- font: Partial<Font>;
- alignment: Partial<Alignment>;
- protection: Partial<Protection>;
- border: Partial<Borders>;
- fill: Fill;
- }
- export type DataValidationOperator =
- | 'between' | 'notBetween' | 'equal' | 'notEqual' | 'greaterThan' | 'lessThan'
- | 'greaterThanOrEqual' | 'lessThanOrEqual';
- export interface DataValidation {
- type: 'list' | 'whole' | 'decimal' | 'date' | 'textLength' | 'custom';
- formulae: any[];
- allowBlank?: boolean;
- operator?: DataValidationOperator;
- error?: string;
- errorTitle?: string;
- errorStyle?: string;
- prompt?: string;
- promptTitle?: string;
- showErrorMessage?: boolean;
- showInputMessage?: boolean;
- }
- export declare enum ErrorValue {
- NotApplicable = '#N/A',
- Ref = '#REF!',
- Name = '#NAME?',
- DivZero = '#DIV/0!',
- Null = '#NULL!',
- Value = '#VALUE!',
- Num = '#NUM!',
- }
- export interface CellErrorValue {
- error: '#N/A' | '#REF!' | '#NAME?' | '#DIV/0!' | '#NULL!' | '#VALUE!' | '#NUM!';
- }
- export interface RichText {
- text: string;
- font?: Partial<Font>;
- }
- export interface CellRichTextValue {
- richText: RichText[];
- }
- export interface CellHyperlinkValue {
- text: string;
- hyperlink: string;
- }
- export interface CellFormulaValue {
- formula: string;
- result?: number | string | Date | { error: CellErrorValue };
- date1904: boolean;
- }
- export interface CellSharedFormulaValue {
- sharedFormula: string;
- readonly formula?: string;
- result?: number | string | Date | { error: CellErrorValue };
- date1904: boolean;
- }
- export declare enum ValueType {
- Null = 0,
- Merge = 1,
- Number = 2,
- String = 3,
- Date = 4,
- Hyperlink = 5,
- Formula = 6,
- SharedString = 7,
- RichText = 8,
- Boolean = 9,
- Error = 10
- }
- export declare enum FormulaType {
- None = 0,
- Master = 1,
- Shared = 2
- }
- export type CellValue =
- | null | number | string | boolean | Date | undefined
- | CellErrorValue
- | CellRichTextValue | CellHyperlinkValue
- | CellFormulaValue | CellSharedFormulaValue;
- export interface CommentMargins {
- insetmode: 'auto' | 'custom';
- inset: Number[];
- }
- export interface CommentProtection {
- locked: 'True' | 'False';
- lockText: 'True' | 'False';
- }
- export type CommentEditAs = 'twoCells' | 'oneCells' | 'absolute';
- export interface Comment {
- texts?: RichText[];
- margins?: Partial<CommentMargins>;
- protection?: Partial<CommentProtection>;
- editAs?: CommentEditAs;
- }
- export interface CellModel {
- address: Address;
- style: Style;
- type: ValueType;
- text?: string;
- hyperlink?: string;
- value?: CellValue;
- master: string;
- formula?: string;
- sharedFormula?: string;
- result?: string | number | any;
- comment: Comment;
- }
- export interface Cell extends Style, Address {
- readonly worksheet: Worksheet;
- readonly workbook: Workbook;
- readonly effectiveType: ValueType;
- readonly isMerged: boolean;
- readonly master: Cell;
- readonly isHyperlink: boolean;
- readonly hyperlink: string; // todo
- readonly text: string;
- readonly fullAddress: {
- sheetName: string;
- address: string;
- row: number;
- col: number;
- };
- model: CellModel;
- /**
- * Assign (or get) a name for a cell (will overwrite any other names that cell had)
- */
- name: string;
- /**
- * Assign (or get) an array of names for a cell (cells can have more than one name)
- */
- names: string[];
- /**
- * Cells can define what values are valid or not and provide
- * prompting to the user to help guide them.
- */
- dataValidation: DataValidation;
- /**
- * Value of the cell
- */
- value: CellValue;
- /**
- * comment of the cell
- */
- note: string | Comment;
- /**
- * convenience getter to access the formula
- */
- readonly formula: string;
- /**
- * convenience getter to access the formula result
- */
- readonly result: number | string | Date;
- /**
- * The type of the cell's value
- */
- readonly type: ValueType;
- /**
- * The type of the cell's formula
- */
- readonly formulaType: FormulaType;
- /**
- * The styles of the cell
- */
- style: Partial<Style>;
- addName(name: string): void;
- /**
- * Remove a name from a cell
- */
- removeName(name: string): void;
- removeAllNames(): void;
- destroy(): void;
- toCsvString(): string;
- release(): void;
- addMergeRef(): void;
- releaseMergeRef(): void;
- merge(master: Cell, ignoreStyle?: boolean): void;
- unmerge(): void;
- isMergedTo(master: Cell): boolean;
- toString(): string;
- }
- export interface RowModel {
- cells: CellModel[];
- number: number;
- min: number;
- max: number;
- height: number;
- style: Partial<Style>;
- hidden: boolean;
- outlineLevel: number;
- collapsed: boolean;
- }
- export interface Row extends Style {
- readonly worksheet: Worksheet;
- readonly hasValues: boolean;
- readonly dimensions: number;
- model: Partial<RowModel> | null;
- /**
- * Set a specific row height
- */
- height: number;
- /**
- * Make row hidden
- */
- hidden: boolean;
- /**
- * Get a row as a sparse array
- */
- // readonly values: CellValue[];
- values: CellValue[] | { [key: string]: CellValue };
- /**
- * Set an outline level for rows
- */
- outlineLevel?: number;
- /**
- * The row number
- */
- readonly number: number;
- /**
- * Indicate the collapsed state based on outlineLevel
- */
- readonly collapsed: boolean;
- /**
- * Number of cells including empty ones
- */
- readonly cellCount: number;
- /**
- * Number of non-empty cells
- */
- readonly actualCellCount: number;
- /**
- * Get cell by number, column letter or column key
- */
- getCell(indexOrKey: number | string): Cell;
- findCell(colNumber: number): Cell | undefined;
- getCellEx(address: Address): Cell;
- /**
- * Iterate over all non-null cells in a row
- */
- eachCell(callback: (cell: Cell, colNumber: number) => void): void;
- /**
- * Iterate over all cells in a row (including empty cells)
- */
- eachCell(opt: { includeEmpty: boolean }, callback: (cell: Cell, colNumber: number) => void): void;
- /**
- * Cut one or more cells (cells to the right are shifted left)
- *
- * Note: this operation will not affect other rows
- */
- splice(start: number, count: number, ...insert: any[]): void;
- /**
- * Commit a completed row to stream
- */
- commit(): void;
- destroy(): void;
- addPageBreak(lft?: number, rght?: number): void;
- }
- export interface Column {
- /**
- * Can be a string to set one row high header or an array to set multi-row high header
- */
- header?: string | string[];
- /**
- * The name of the properties associated with this column in each row
- */
- key?: string;
- /**
- * The width of the column
- */
- width?: number;
- /**
- * Set an outline level for columns
- */
- outlineLevel: number;
- /**
- * Hides the column
- */
- hidden: boolean;
- /**
- * Styles applied to the column
- */
- style: Partial<Style>;
- /**
- * The cell values in the column
- */
- values: ReadonlyArray<CellValue>;
- /**
- * Column letter key
- */
- readonly letter: string;
- readonly number: number;
- readonly worksheet: Worksheet;
- readonly isCustomWidth: boolean;
- readonly headers: string[];
- readonly isDefault: boolean;
- readonly headerCount: number;
- /**
- * Below properties read from style
- */
- border?: Partial<Borders>;
- fill?: Fill;
- numFmt?: string;
- font?: Partial<Font>;
- alignment?: Partial<Alignment>;
- protection?: Partial<Protection>;
- toString(): string
- equivalentTo(other: Column): boolean
- /**
- * indicate the collapsed state based on outlineLevel
- */
- readonly collapsed: boolean;
- /**
- * Iterate over all current cells in this column
- */
- eachCell(callback: (cell: Cell, rowNumber: number) => void): void;
- /**
- * Iterate over all current cells in this column including empty cells
- */
- eachCell(opt: { includeEmpty: boolean }, callback: (cell: Cell, rowNumber: number) => void): void;
- defn: any; //todo
- }
- export interface PageSetup {
- /**
- * Whitespace on the borders of the page. Units are inches.
- */
- margins: Margins;
- /**
- * Orientation of the page - i.e. taller (`'portrait'`) or wider (`'landscape'`).
- *
- * `'portrait'` by default
- */
- orientation: 'portrait' | 'landscape';
- /**
- * Horizontal Dots per Inch. Default value is 4294967295
- */
- horizontalDpi: number;
- /**
- * Vertical Dots per Inch. Default value is 4294967295
- */
- verticalDpi: number;
- /**
- * Whether to use fitToWidth and fitToHeight or scale settings.
- *
- * Default is based on presence of these settings in the pageSetup object - if both are present,
- * scale wins (i.e. default will be false)
- */
- fitToPage: boolean;
- /**
- * How many pages wide the sheet should print on to. Active when fitToPage is true
- *
- * Default is 1
- */
- fitToWidth: number;
- /**
- * How many pages high the sheet should print on to. Active when fitToPage is true
- *
- * Default is 1
- */
- fitToHeight: number;
- /**
- * Percentage value to increase or reduce the size of the print. Active when fitToPage is false
- *
- * Default is 100
- */
- scale: number;
- /**
- * Which order to print the pages.
- *
- * Default is `downThenOver`
- */
- pageOrder: 'downThenOver' | 'overThenDown';
- /**
- * Print without colour
- *
- * false by default
- */
- blackAndWhite: boolean;
- /**
- * Print with less quality (and ink)
- *
- * false by default
- */
- draft: boolean;
- /**
- * Where to place comments
- *
- * Default is `None`
- */
- cellComments: 'atEnd' | 'asDisplayed' | 'None';
- /**
- * Where to show errors
- *
- * Default is `displayed`
- */
- errors: 'dash' | 'blank' | 'NA' | 'displayed';
- /**
- * What paper size to use (see below)
- *
- * | Name | Value |
- * | ----------------------------- | --------- |
- * | Letter | `undefined` |
- * | Legal | `5` |
- * | Executive | `7` |
- * | A4 | `9` |
- * | A5 | `11` |
- * | B5 (JIS) | `13` |
- * | Envelope #10 | `20` |
- * | Envelope DL | `27` |
- * | Envelope C5 | `28` |
- * | Envelope B5 | `34` |
- * | Envelope Monarch | `37` |
- * | Double Japan Postcard Rotated | `82` |
- * | 16K 197x273 mm | `119` |
- */
- paperSize: PaperSize;
- /**
- * Whether to show the row numbers and column letters, `false` by default
- */
- showRowColHeaders: boolean;
- /**
- * Whether to show grid lines, `false` by default
- */
- showGridLines: boolean;
- /**
- * Which number to use for the first page
- */
- firstPageNumber: number;
- /**
- * Whether to center the sheet data horizontally, `false` by default
- */
- horizontalCentered: boolean;
- /**
- * Whether to center the sheet data vertically, `false` by default
- */
- verticalCentered: boolean;
- /**
- * Set Print Area for a sheet, e.g. `'A1:G20'`
- */
- printArea: string;
- /**
- * Repeat specific rows on every printed page, e.g. `'1:3'`
- */
- printTitlesRow: string;
- /**
- * Repeat specific columns on every printed page, e.g. `'A:C'`
- */
- printTitlesColumn: string;
- }
- export interface HeaderFooter {
- /**
- * Set the value of differentFirst as true, which indicates that headers/footers for first page are different from the other pages, `false` by default
- */
- differentFirst: boolean,
- /**
- * Set the value of differentOddEven as true, which indicates that headers/footers for odd and even pages are different, `false` by default
- */
- differentOddEven: boolean,
- /**
- * Set header string for odd pages, could format the string and `null` by default
- */
- oddHeader: string,
- /**
- * Set footer string for odd pages, could format the string and `null` by default
- */
- oddFooter: string,
- /**
- * Set header string for even pages, could format the string and `null` by default
- */
- evenHeader: string,
- /**
- * Set footer string for even pages, could format the string and `null` by default
- */
- evenFooter: string,
- /**
- * Set header string for the first page, could format the string and `null` by default
- */
- firstHeader: string,
- /**
- * Set footer string for the first page, could format the string and `null` by default
- */
- firstFooter: string
- }
- export type AutoFilter = string | {
- from: string | { row: number; column: number };
- to: string | { row: number; column: number };
- };
- export interface WorksheetProtection {
- objects: boolean;
- scenarios: boolean;
- selectLockedCells: boolean;
- selectUnlockedCells: boolean;
- formatCells: boolean;
- formatColumns: boolean;
- formatRows: boolean;
- insertColumns: boolean;
- insertRows: boolean;
- insertHyperlinks: boolean;
- deleteColumns: boolean;
- deleteRows: boolean;
- sort: boolean;
- autoFilter: boolean;
- pivotTables: boolean;
- }
- export interface Image {
- extension: 'jpeg' | 'png' | 'gif';
- base64?: string;
- filename?: string;
- buffer?: Buffer;
- }
- export interface IAnchor {
- col: number;
- row: number;
- nativeCol: number;
- nativeRow: number;
- nativeColOff: number;
- nativeRowOff: number;
- }
- export class Anchor implements IAnchor {
- col: number;
- nativeCol: number;
- nativeColOff: number;
- nativeRow: number;
- nativeRowOff: number;
- row: number;
- private readonly colWidth: number;
- private readonly rowHeight: number;
- worksheet: Worksheet;
- constructor(model?: IAnchor | object);
- }
- export interface ImageRange {
- tl: Anchor;
- br: Anchor;
- }
- export interface ImagePosition {
- tl: { col: number; row: number };
- ext: { width: number; height: number };
- }
- export interface ImageHyperlinkValue {
- hyperlink: string;
- tooltip?: string;
- }
- export interface Range extends Location {
- sheetName: string;
- tl: string;
- $t$l: string;
- br: string;
- $b$r: string;
- range: string;
- $range: string;
- shortRange: string;
- $shortRange: string;
- count: number;
- decode(): void;
- decode(v: Range): void;
- decode(v: string): void;
- decode(v: Location): void;
- decode(top: number, left: number, bottom: number, right: number, sheetName?: string): void;
- decode(tl: string, br: string, sheetName?: string): void;
- decode(v: [string, string]): void;
- decode(v: [string, string, string]): void;
- decode(v: [number, number, number, number]): void;
- decode(v: [number, number, number, number, string]): void;
- expand(top: number, left: number, bottom: number, right: number): void;
- expandRow(row: Row): void;
- expandToAddress(addressStr: string): void;
- toString(): string;
- intersects(other: Range): boolean;
- contains(addressStr: string): boolean;
- containsEx(address: Partial<{
- sheetName: string;
- row: number;
- col: number;
- }>): boolean;
- }
- export interface RowBreak {
- id: number;
- max: number;
- min: number;
- man: number;
- }
- export interface WorksheetModel {
- id: number;
- name: string;
- // dataValidations: this.dataValidations.model,
- properties: WorksheetProperties;
- pageSetup: Partial<PageSetup>;
- headerFooter: Partial<HeaderFooter>;
- rowBreaks: RowBreak[];
- views: WorksheetView[];
- autoFilter: AutoFilter;
- media: Media[];
- }
- export type WorksheetState = 'visible' | 'hidden' | 'veryHidden';
- export type CellIsOperators = 'equal' | 'greaterThan' | 'lessThan' | 'between';
- export type ContainsTextOperators = 'containsText' | 'containsBlanks' | 'notContainsBlanks' | 'containsErrors' | 'notContainsErrors';
- export type TimePeriodTypes = 'lastWeek' | 'thisWeek' | 'nextWeek' | 'yesterday' | 'today' | 'tomorrow' | 'last7Days' | 'lastMonth'
- | 'thisMonth' | 'nextMonth';
- export type IconSetTypes = '5Arrows' | '5ArrowsGray' | '5Boxes' | '5Quarters' | '5Rating' | '4Arrows' | '4ArrowsGray'
- | '4Rating' | '4RedToBlack' | '4TrafficLights' | 'NoIcons' | '3Arrows' | '3ArrowsGray' | '3Flags' | '3Signs'
- | '3Stars' | '3Symbols' | '3Symbols2' | '3TrafficLights1' | '3TrafficLights2' | '3Triangles';
- export type CfvoTypes = 'percentile' | 'percent' | 'num' | 'min' | 'max' | 'formula' | 'autoMin' | 'autoMax';
- export interface Cvfo {
- type: CfvoTypes;
- value?: number;
- }
- export interface ConditionalFormattingBaseRule {
- priority: number;
- style?: Partial<Style>;
- }
- export interface ExpressionRuleType extends ConditionalFormattingBaseRule {
- type: 'expression';
- formulae?: any[];
- }
- export interface CellIsRuleType extends ConditionalFormattingBaseRule {
- type: 'cellIs';
- formulae?: any[];
- operator?: CellIsOperators;
- }
- export interface Top10RuleType extends ConditionalFormattingBaseRule {
- type: 'top10';
- rank: number;
- percent: boolean;
- bottom: boolean;
- }
- export interface AboveAverageRuleType extends ConditionalFormattingBaseRule {
- type: 'aboveAverage';
- aboveAverage: boolean;
- }
- export interface ColorScaleRuleType extends ConditionalFormattingBaseRule {
- type: 'colorScale';
- cfvo?: Cvfo[];
- color?: Partial<Color>[];
- }
- export interface IconSetRuleType extends ConditionalFormattingBaseRule {
- type: 'iconSet';
- showValue?: boolean;
- reverse?: boolean;
- custom?: boolean;
- iconSet?: IconSetTypes;
- cfvo?: Cvfo[];
- }
- export interface ContainsTextRuleType extends ConditionalFormattingBaseRule {
- type: 'containsText';
- operator?: ContainsTextOperators;
- text?: string;
- }
- export interface TimePeriodRuleType extends ConditionalFormattingBaseRule {
- type: 'timePeriod';
- timePeriod?: TimePeriodTypes;
- }
- export interface DataBarRuleType extends ConditionalFormattingBaseRule {
- type: 'dataBar';
- gradient?: boolean;
- minLength?: number;
- maxLength?: number;
- showValue?: boolean;
- border?: boolean;
- negativeBarColorSameAsPositive?: boolean;
- negativeBarBorderColorSameAsPositive?: boolean;
- axisPosition?: 'auto' | 'middle' | 'none';
- direction?: 'context' | 'leftToRight' | 'rightToLeft';
- cfvo?: Cvfo[];
- }
- export type ConditionalFormattingRule = ExpressionRuleType | CellIsRuleType | Top10RuleType | AboveAverageRuleType | ColorScaleRuleType | IconSetRuleType
- | ContainsTextRuleType | TimePeriodRuleType | DataBarRuleType;
- export type RowValues = CellValue[] | { [key: string]: CellValue } | undefined | null;
- export interface ConditionalFormattingOptions {
- ref: string;
- rules: ConditionalFormattingRule[];
- }
- export interface Worksheet {
- readonly id: number;
- name: string;
- readonly workbook: Workbook;
- readonly hasMerges: boolean;
- readonly dimensions: Range;
- /**
- * Contains information related to how a worksheet is printed
- */
- pageSetup: Partial<PageSetup>;
- /**
- * Worksheet Header and Footer
- */
- headerFooter: Partial<HeaderFooter>;
- /**
- * Worksheet State
- */
- state: WorksheetState;
- /**
- * Worksheet Properties
- */
- properties: WorksheetProperties;
- /**
- * Open panes representing the sheet
- */
- views: Array<Partial<WorksheetView>>;
- /**
- * Apply an auto filter to your worksheet.
- */
- autoFilter?: AutoFilter;
- destroy(): void;
- /**
- * A count of the number of rows that have values. If a mid-document row is empty, it will not be included in the count.
- */
- readonly actualRowCount: number;
- /**
- * The total column size of the document. Equal to the maximum cell count from all of the rows
- */
- readonly columnCount: number;
- /**
- * Get the last column in a worksheet
- */
- readonly lastColumn: Column;
- /**
- * A count of the number of columns that have values.
- */
- readonly actualColumnCount: number;
- getColumnKey(key: string): Column;
- setColumnKey(key: string, value: Column): void;
- deleteColumnKey(key: string): void;
- eachColumnKey(callback: (col: Column, index: number) => void): void;
- /**
- * Access an individual columns by key, letter and 1-based column number
- */
- getColumn(indexOrKey: number | string): Column;
- /**
- * Cut one or more columns (columns to the right are shifted left)
- * and optionally insert more
- *
- * If column properties have been definde, they will be cut or moved accordingly
- *
- * Known Issue: If a splice causes any merged cells to move, the results may be unpredictable
- *
- * Also: If the worksheet has more rows than values in the colulmn inserts,
- * the rows will still be shifted as if the values existed
- */
- spliceColumns(start: number, count: number, ...insert: any[][]): void;
- /**
- * Add column headers and define column keys and widths.
- *
- * Note: these column structures are a workbook-building convenience only,
- * apart from the column width, they will not be fully persisted.
- */
- columns: Array<Partial<Column>>;
- /**
- * The total row size of the document. Equal to the row number of the last row that has values.
- */
- readonly rowCount: number;
- /**
- * Get the last editable row in a worksheet (or undefined if there are none)
- */
- readonly lastRow: Row | undefined;
- /**
- * Tries to find and return row for row no, else undefined
- *
- * @param row The 1-index row number
- */
- findRow(row: number): Row | undefined;
- /**
- * Tries to find and return rows for row no start and length, else undefined
- *
- * @param start The 1-index starting row number
- * @param length The length of the expected array
- */
- findRows(start: number, length: number): Row[] | undefined;
- /**
- * Cut one or more rows (rows below are shifted up)
- * and optionally insert more
- *
- * Known Issue: If a splice causes any merged cells to move, the results may be unpredictable
- */
- spliceRows(start: number, count: number, ...insert: any[][]): void;
- /**
- * Add a couple of Rows by key-value, after the last current row, using the column keys,
- * or add a row by contiguous Array (assign to columns A, B & C)
- */
- addRow(data: any[] | any, style?: string): Row;
- /**
- * Add multiple rows by providing an array of arrays or key-value pairs
- */
- addRows(rows: any[], style?: string): Row[];
- /**
- * Insert a Row by key-value, at the position (shifiting down all rows from position),
- * using the column keys, or add a row by contiguous Array (assign to columns A, B & C)
- */
- insertRow(pos: number, value: any[] | any, style?: string): Row;
- /**
- * Insert multiple rows at position (shifiting down all rows from position)
- * by providing an array of arrays or key-value pairs
- */
- insertRows(pos: number, values: any[], style?: string): Row[];
- /**
- * Duplicate rows and insert new rows
- */
- duplicateRow(rowNum: number, count: number, insert: boolean): void;
- /**
- * Get or create row by 1-based index
- */
- getRow(index: number): Row;
- /**
- * Get or create rows by 1-based index
- */
- getRows(start: number, length: number): Row[] | undefined;
- /**
- * Iterate over all rows that have values in a worksheet
- */
- eachRow(callback: (row: Row, rowNumber: number) => void): void;
- /**
- * Iterate over all rows (including empty rows) in a worksheet
- */
- eachRow(opt: { includeEmpty: boolean }, callback: (row: Row, rowNumber: number) => void): void;
- /**
- * return all rows as sparse array
- */
- getSheetValues(): RowValues[];
- /**
- * returns the cell at [r,c] or address given by r. If not found, return undefined
- */
- findCell(r: number | string, c: number | string): Cell | undefined;
- /**
- * Get or create cell
- */
- getCell(r: number | string, c?: number | string): Cell;
- /**
- * Merge cells, either:
- *
- * tlbr string, e.g. `'A4:B5'`
- *
- * tl string, br string, e.g. `'G10', 'H11'`
- *
- * t, l, b, r numbers, e.g. `10,11,12,13`
- */
- mergeCells(): void;
- mergeCells(v: Range): void;
- mergeCells(v: string): void;
- mergeCells(v: Location): void;
- mergeCells(top: number, left: number, bottom: number, right: number, sheetName?: string): void;
- mergeCells(tl: string, br: string, sheetName?: string): void;
- mergeCells(v: [string, string]): void;
- mergeCells(v: [string, string, string]): void;
- mergeCells(v: [number, number, number, number]): void;
- mergeCells(v: [number, number, number, number, string]): void;
- mergeCellsWithoutStyle(): void;
- mergeCellsWithoutStyle(v: Range): void;
- mergeCellsWithoutStyle(v: string): void;
- mergeCellsWithoutStyle(v: Location): void;
- mergeCellsWithoutStyle(top: number, left: number, bottom: number, right: number, sheetName?: string): void;
- mergeCellsWithoutStyle(tl: string, br: string, sheetName?: string): void;
- mergeCellsWithoutStyle(v: [string, string]): void;
- mergeCellsWithoutStyle(v: [string, string, string]): void;
- mergeCellsWithoutStyle(v: [number, number, number, number]): void;
- mergeCellsWithoutStyle(v: [number, number, number, number, string]): void;
- /**
- * unmerging the cells breaks the style links
- */
- unMergeCells(): void;
- unMergeCells(v: Range): void;
- unMergeCells(v: string): void;
- unMergeCells(v: Location): void;
- unMergeCells(top: number, left: number, bottom: number, right: number, sheetName?: string): void;
- unMergeCells(tl: string, br: string, sheetName?: string): void;
- unMergeCells(v: [string, string]): void;
- unMergeCells(v: [string, string, string]): void;
- unMergeCells(v: [number, number, number, number]): void;
- unMergeCells(v: [number, number, number, number, string]): void;
- fillFormula(range: Range | string | Location, formula: string, results?: ((r: number, c: number) => string | number) | number[] | number[][]): void;
- /**
- * Using the image id from `Workbook.addImage`, set the background to the worksheet
- */
- addBackgroundImage(imageId: number): void;
- getBackgroundImageId(): string;
- /**
- * Using the image id from `Workbook.addImage`,
- * embed an image within the worksheet to cover a range
- */
- addImage(imageId: number, range: string | { editAs?: string; } & ImageRange & { hyperlinks?: ImageHyperlinkValue } | { editAs?: string; } & ImagePosition & { hyperlinks?: ImageHyperlinkValue }): void;
- getImages(): Array<{
- type: 'image',
- imageId: string;
- range: ImageRange;
- }>;
- commit(): void;
- model: WorksheetModel;
- /**
- * Worksheet protection
- */
- protect(password: string, options: Partial<WorksheetProtection>): Promise<void>;
- unprotect(): void;
- /**
- * Add a new table and return a reference to it
- */
- addTable(tableProperties: TableProperties): Table;
- /**
- * fetch table by name or id
- */
- getTable(name: string): Table;
- /**
- * delete table by name or id
- */
- removeTable(name: string): void;
- /**
- * fetch table
- */
- getTables(): [Table, void][];
- /**
- * add conditionalFormattingOptions
- */
- addConditionalFormatting(cf: ConditionalFormattingOptions): void;
- /**
- * delete conditionalFormattingOptions
- */
- removeConditionalFormatting(filter: any): void;
- }
- export interface CalculationProperties {
- /**
- * Whether the application shall perform a full recalculation when the workbook is opened
- */
- fullCalcOnLoad: boolean
- }
- export interface WorksheetProperties {
- /**
- * Color of the tab
- */
- tabColor: Partial<Color>;
- /**
- * The worksheet column outline level (default: 0)
- */
- outlineLevelCol: number;
- /**
- * The worksheet row outline level (default: 0)
- */
- outlineLevelRow: number;
- /**
- * Default row height (default: 15)
- */
- defaultRowHeight: number;
- /**
- * Default column width (optional)
- */
- defaultColWidth?: number;
- /**
- * default: 55
- */
- dyDescent: number;
- showGridLines: boolean;
- }
- export interface AddWorksheetOptions {
- properties: Partial<WorksheetProperties>;
- pageSetup: Partial<PageSetup>;
- headerFooter: Partial<HeaderFooter>;
- views: Array<Partial<WorksheetView>>;
- state: WorksheetState;
- }
- export interface WorkbookProperties {
- /**
- * Set workbook dates to 1904 date system
- */
- date1904: boolean;
- }
- export interface JSZipGeneratorOptions {
- /**
- * @default DEFLATE
- */
- compression: 'STORE' | 'DEFLATE';
- compressionOptions: null | {
- /**
- * @default 6
- */
- level: number;
- };
- }
- export interface XlsxWriteOptions extends stream.xlsx.WorkbookWriterOptions {
- /**
- * The option passed to JsZip#generateAsync(options)
- */
- zip: Partial<JSZipGeneratorOptions>;
- }
- export interface Xlsx {
- /**
- * read from a file
- */
- readFile(path: string): Promise<Workbook>;
- /**
- * read from a stream
- * @param stream
- */
- read(stream: import('stream').Stream): Promise<Workbook>;
- /**
- * load from an array buffer
- * @param buffer
- */
- load(buffer: Buffer): Promise<Workbook>;
- /**
- * write to a buffer
- */
- writeBuffer(options?: Partial<XlsxWriteOptions>): Promise<Buffer>;
- /**
- * write to a file
- */
- writeFile(path: string, options?: Partial<XlsxWriteOptions>): Promise<void>;
- /**
- * write to a stream
- */
- write(stream: import('stream').Stream, options?: Partial<XlsxWriteOptions>): Promise<void>;
- }
- // https://c2fo.io/fast-csv/docs/parsing/options
- type HeaderArray = (string | undefined | null)[];
- type HeaderTransformFunction = (headers: HeaderArray) => HeaderArray;
- export interface FastCsvParserOptionsArgs {
- objectMode: boolean;
- delimiter: string;
- quote: string | null;
- escape: string;
- headers: boolean | HeaderTransformFunction | HeaderArray;
- renameHeaders: boolean;
- ignoreEmpty: boolean;
- comment: string;
- strictColumnHandling: boolean;
- discardUnmappedColumns: boolean;
- trim: boolean;
- ltrim: boolean;
- rtrim: boolean;
- encoding: string;
- maxRows: number;
- skipLines: number;
- skipRows: number;
- }
- interface QuoteColumnMap {
- [s: string]: boolean;
- }
- declare type QuoteColumns = boolean | boolean[] | QuoteColumnMap;
- interface RowMap {
- [key: string]: any;
- }
- declare type RowHashArray = [string, any][];
- declare type RowArray = string[];
- declare type Rows = RowArray | RowMap | RowHashArray;
- declare type RowTransformCallback = (error?: Error | null, row?: Rows) => void;
- interface RowTransformFunction {
- (row: Rows, callback: RowTransformCallback): void;
- (row: Rows): Rows;
- }
- // https://c2fo.io/fast-csv/docs/formatting/options/
- export interface FastCsvFormatterOptionsArgs {
- objectMode: boolean;
- delimiter: string;
- rowDelimiter: string;
- quote: string | boolean;
- escape: string;
- quoteColumns: QuoteColumns;
- quoteHeaders: QuoteColumns;
- headers: null | boolean | string[];
- includeEndRowDelimiter: boolean;
- writeBOM: boolean;
- transform: RowTransformFunction;
- alwaysWriteHeaders: boolean;
- }
- export interface CsvReadOptions {
- dateFormats: string[];
- map(value: any, index: number): any;
- sheetName: string;
- parserOptions: Partial<FastCsvParserOptionsArgs>;
- }
- export interface CsvWriteOptions {
- dateFormat: string;
- dateUTC: boolean;
- sheetName: string;
- sheetId: number;
- encoding: string;
- map(value: any, index: number): any;
- includeEmptyRows: boolean;
- formatterOptions: Partial<FastCsvFormatterOptionsArgs>;
- }
- export interface Csv {
- /**
- * read from a file
- */
- readFile(path: string, options?: Partial<CsvReadOptions>): Promise<Worksheet>;
- /**
- * read from a stream
- */
- read(stream: import('stream').Stream, options?: Partial<CsvReadOptions>): Promise<Worksheet>;
- /**
- * Create input stream for reading
- */
- createInputStream(options?: Partial<CsvReadOptions>): import('events').EventEmitter;
- /**
- * write to a buffer
- */
- writeBuffer(options?: Partial<CsvWriteOptions>): Promise<Buffer>;
- /**
- * write to a file
- */
- writeFile(path: string, options?: Partial<CsvWriteOptions>): Promise<void>;
- /**
- * write to a stream
- */
- write(stream: import('stream').Stream, options?: Partial<CsvWriteOptions>): Promise<void>;
- }
- export interface Media {
- type: string; // image,background
- name: string;
- extension: string;
- buffer: Buffer;
- }
- export interface Address {
- sheetName?: string;
- address: string;
- col: string;
- row: string;
- $col$row: string;
- }
- export interface Location {
- top: number;
- left: number;
- bottom: number;
- right: number;
- }
- export interface CellMatrix {
- addCell(addressStr: string): void;
- getCell(addressStr: string): Cell;
- findCell(addressStr: string): Cell | undefined;
- findCellAt(sheetName: string, rowNumber: number, colNumber: number): Cell | undefined;
- addCellEx(address: string | Location): void;
- getCellEx(address: string | Location): Cell;
- findCellEx(address: string | Location, create: boolean): Cell | undefined;
- getCellAt(sheetName: string, rowNumber: number, colNumber: number): Cell;
- removeCellEx(address: string | Location): void;
- forEach(callback: (cell: Cell) => void): void;
- map<T>(callback: (cell: Cell) => T): T[];
- findSheet(address: string | Location, create: boolean): Cell[] | undefined;
- findSheetRow(sheet: Cell[][], address: string | Location, create: boolean): Row | undefined;
- findRowCell(row: any[], address: Address, create: boolean): Cell | undefined;
- }
- export interface DefinedNamesRanges {
- name: string;
- ranges: string[];
- }
- export type DefinedNamesModel = DefinedNamesRanges[];
- export interface DefinedNames {
- getMatrix(name: string): CellMatrix;
- // add a name to a cell. locStr in the form SheetName!$col$row or SheetName!$c1$r1:$c2:$r2
- add(locStr: string, name?: string): void;
- addEx(location: string | Location, name: string): Cell;
- remove(locStr: string | Location, name: string): void;
- removeEx(location: string | Location, name: string): void;
- removeAllNames(location: string | Location): void;
- forEach(callback: (name: string, cell: Cell) => void): void;
- // get all the names of a cell
- getNames(addressStr: string): string[];
- getNamesEx(address: string): string[];
- getRanges(name: string, matrix?: CellMatrix): DefinedNamesRanges;
- model: DefinedNamesModel;
- }
- export interface WorkbookModel {
- creator: string;
- lastModifiedBy: string;
- lastPrinted: Date;
- created: Date;
- modified: Date;
- properties: WorkbookProperties;
- worksheets: Worksheet[];
- sheets: WorksheetModel[];
- definedNames: DefinedNamesModel;
- views: WorkbookView[];
- company: string;
- manager: string;
- title: string;
- subject: string;
- keywords: string;
- category: string;
- description: string;
- language: string;
- revision: Date;
- contentStatus: string;
- themes: string[];
- media: Media[];
- }
- export class Workbook {
- category: string;
- company: string;
- creator: string;
- description: string;
- keywords: string;
- lastModifiedBy: string;
- created: Date;
- manager: string;
- modified: Date;
- lastPrinted: Date;
- properties: WorkbookProperties;
- subject: string;
- title: string;
- /**
- * Workbook calculation Properties
- */
- calcProperties: CalculationProperties;
- /**
- * xlsx file format operations
- */
- readonly xlsx: Xlsx;
- /**
- * csv file format operations
- */
- readonly csv: Csv;
- readonly nextId: number;
- readonly definedNames: DefinedNames;
- model: WorkbookModel;
- /**
- * The Workbook views controls how many separate windows Excel will open when viewing the workbook.
- */
- views: WorkbookView[];
- /**
- * return a clone of worksheets in order
- */
- worksheets: Worksheet[];
- /**
- * Add a new worksheet and return a reference to it
- */
- addWorksheet(name?: string, options?: Partial<AddWorksheetOptions>): Worksheet;
- removeWorksheetEx(worksheet: Worksheet): void;
- removeWorksheet(indexOrName: number | string): void;
- /**
- * fetch sheet by name or id
- */
- getWorksheet(indexOrName: number | string): Worksheet;
- /**
- * Iterate over all sheets.
- *
- * Note: `workbook.worksheets.forEach` will still work but this is better.
- */
- eachSheet(callback: (worksheet: Worksheet, id: number) => void): void;
- clearThemes(): void;
- /**
- * Add Image to Workbook and return the id
- */
- addImage(img: Image): number;
- getImage(id: number): Image;
- }
- export interface TableStyleProperties {
- /**
- * The colour theme of the table
- * @default 'TableStyleMedium2'
- */
- theme?: 'TableStyleDark1' | 'TableStyleDark10' | 'TableStyleDark11' | 'TableStyleDark2' | 'TableStyleDark3' | 'TableStyleDark4' | 'TableStyleDark5' | 'TableStyleDark6' | 'TableStyleDark7' | 'TableStyleDark8' | 'TableStyleDark9' | 'TableStyleLight1' | 'TableStyleLight10' | 'TableStyleLight11' | 'TableStyleLight12' | 'TableStyleLight13' | 'TableStyleLight14' | 'TableStyleLight15' | 'TableStyleLight16' | 'TableStyleLight17' | 'TableStyleLight18' | 'TableStyleLight19' | 'TableStyleLight2' | 'TableStyleLight20' | 'TableStyleLight21' | 'TableStyleLight3' | 'TableStyleLight4' | 'TableStyleLight5' | 'TableStyleLight6' | 'TableStyleLight7' | 'TableStyleLight8' | 'TableStyleLight9' | 'TableStyleMedium1' | 'TableStyleMedium10' | 'TableStyleMedium11' | 'TableStyleMedium12' | 'TableStyleMedium13' | 'TableStyleMedium14' | 'TableStyleMedium15' | 'TableStyleMedium16' | 'TableStyleMedium17' | 'TableStyleMedium18' | 'TableStyleMedium19' | 'TableStyleMedium2' | 'TableStyleMedium20' | 'TableStyleMedium21' | 'TableStyleMedium22' | 'TableStyleMedium23' | 'TableStyleMedium24' | 'TableStyleMedium25' | 'TableStyleMedium26' | 'TableStyleMedium27' | 'TableStyleMedium28' | 'TableStyleMedium3' | 'TableStyleMedium4' | 'TableStyleMedium5' | 'TableStyleMedium6' | 'TableStyleMedium7' | 'TableStyleMedium8' | 'TableStyleMedium9';
- /**
- * Highlight the first column (bold)
- * @default false
- */
- showFirstColumn?: boolean;
- /**
- * Highlight the last column (bold)
- * @default false
- */
- showLastColumn?: boolean;
- /**
- * Alternate rows shown with background colour
- * @default false
- */
- showRowStripes?: boolean;
- /**
- * Alternate rows shown with background colour
- * @default false
- */
- showColumnStripes?: boolean;
- }
- export interface TableColumnProperties {
- /**
- * The name of the column, also used in the header
- */
- name: string;
- /**
- * Switches the filter control in the header
- * @default false
- */
- filterButton?: boolean;
- /**
- * Label to describe the totals row (first column)
- * @default 'Total'
- */
- totalsRowLabel?: string;
- /**
- * Name of the totals function
- * @default 'none'
- */
- totalsRowFunction?: 'none' | 'average' | 'countNums' | 'count' | 'max' | 'min' | 'stdDev' | 'var' | 'sum' | 'custom';
- /**
- * Optional formula for custom functions
- */
- totalsRowFormula?: string;
- }
- export interface TableProperties {
- /**
- * The name of the table
- */
- name: string;
- /**
- * The display name of the table
- */
- displayName?: string;
- /**
- * Top left cell of the table
- */
- ref: string;
- /**
- * Show headers at top of table
- * @default true
- */
- headerRow?: boolean;
- /**
- * Show totals at bottom of table
- * @default false
- */
- totalsRow?: boolean;
- /**
- * Extra style properties
- * @default {}
- */
- style?: TableStyleProperties;
- /**
- * Column definitions
- */
- columns: TableColumnProperties[]
- /**
- * Rows of data
- */
- rows: any[][]
- }
- export type TableColumn = Required<TableColumnProperties>
- export interface Table extends Required<TableProperties> {
- /**
- * Commit changes
- */
- commit: () => void
- /**
- * Remove a rows of data
- */
- removeRows: (rowIndex: number, count: number) => void
- /**
- * Add a row of data, either insert at rowNumber or append
- */
- addRow: (values: any[], rowNumber?: number) => void
- /**
- * Get column
- */
- getColumn: (colIndex: number) => TableColumn
- /**
- * Add a new column, including column defn and values
- * inserts at colNumber or adds to the right
- */
- addColumn: (column: TableColumnProperties, values: any[], colIndex: number) => void
- /**
- * Remove a column with data
- */
- removeColumns: (colIndex: number, count: number) => void
- }
- export namespace config {
- function setValue(key: 'promise', promise: any): void;
- }
- export namespace stream {
- namespace xlsx {
- interface WorkbookWriterOptions {
- /**
- * Specifies a writable stream to write the XLSX workbook to.
- */
- stream: import('stream').Stream;
- /**
- * If stream not specified, this field specifies the path to a file to write the XLSX workbook to.
- */
- filename: string;
- /**
- * Specifies whether to use shared strings in the workbook. Default is false
- */
- useSharedStrings: boolean;
- /**
- * Specifies whether to add style information to the workbook.
- * Styles can add some performance overhead. Default is false
- */
- useStyles: boolean;
- }
- interface ArchiverZipOptions {
- comment: string;
- forceLocalTime: boolean;
- forceZip64: boolean;
- store: boolean;
- zlib: Partial<ZlibOptions>;
- }
- interface ZlibOptions {
- /**
- * @default constants.Z_NO_FLUSH
- */
- flush: number;
- /**
- * @default constants.Z_FINISH
- */
- finishFlush: number;
- /**
- * @default 16*1024
- */
- chunkSize: number;
- windowBits: number;
- level: number; // compression only
- memLevel: number; // compression only
- strategy: number; // compression only
- dictionary: Buffer | DataView | ArrayBuffer; // deflate/inflate only, empty dictionary by default
- //| NodeJS.TypedArray
- }
- interface WorkbookStreamWriterOptions extends WorkbookWriterOptions {
- /**
- * Specifies whether to add style information to the workbook.
- * Styles can add some performance overhead. Default is false
- */
- zip: Partial<ArchiverZipOptions>;
- }
- class WorkbookWriter extends Workbook {
- constructor(options: Partial<WorkbookStreamWriterOptions>);
- // commit all worksheets, then add suplimentary files
- commit(): Promise<void>;
- addStyles(): Promise<void>;
- addThemes(): Promise<void>;
- addOfficeRels(): Promise<void>;
- addContentTypes(): Promise<void>;
- addApp(): Promise<void>;
- addCore(): Promise<void>;
- addSharedStrings(): Promise<void>;
- addWorkbookRels(): Promise<void>;
- addWorkbook(): Promise<void>;
- }
- interface WorkbookStreamReaderOptions {
- /**
- * @default 'emit'
- */
- worksheets?: 'emit' | 'ignore';
- /**
- * @default 'cache'
- */
- sharedStrings?: 'cache' | 'emit' | 'ignore';
- /**
- * @default 'ignore'
- */
- hyperlinks?: 'cache' | 'emit' | 'ignore';
- /**
- * @default 'ignore'
- */
- styles?: 'cache' | 'ignore';
- /**
- * @default 'ignore'
- */
- entries?: 'emit' | 'ignore';
- }
- class WorkbookReader extends Workbook {
- constructor(input: string | import('stream').Stream, options: Partial<WorkbookStreamReaderOptions>);
- read(): Promise<void>;
- //[Symbol.asyncIterator](): AsyncGenerator<WorksheetReader>;
- //parse(): AsyncIterator<any>;
- }
- interface WorksheetReaderOptions {
- workbook: Workbook;
- id: number;
- entry: import('stream').Stream;
- options: WorkbookStreamReaderOptions;
- }
- class WorksheetReader {
- constructor(options: WorksheetReaderOptions);
- read(): Promise<void>;
- // [Symbol.asyncIterator](): AsyncGenerator<Row>;
- // parse(): AsyncIterator<Array<any>>;
- dimensions(): number;
- columns(): number;
- getColumn(c: number): Column;
- }
- }
- }
|