From aa86eef7fcfe787f5bf16589be75390c9fc6328f Mon Sep 17 00:00:00 2001 From: DMan577 Date: Sun, 12 Mar 2017 09:21:11 +0200 Subject: [PATCH] Update index.d.ts --- index.d.ts | 216 ++++++++++++++++++++++++++++++++++++++++++----------- 1 file changed, 174 insertions(+), 42 deletions(-) diff --git a/index.d.ts b/index.d.ts index 4e4eb06..6af7911 100644 --- a/index.d.ts +++ b/index.d.ts @@ -3,9 +3,15 @@ // Definitions by: themauveavenger // Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped +/** Attempts to read filename and parse */ export declare function readFile(filename: string, opts?: IParsingOptions): IWorkBook; +/** Attempts to parse data */ export declare function read(data: any, opts?: IParsingOptions): IWorkBook; -export declare function write(data: any, opts?: IParsingOptions): any; +/** Attempts to write workbook data to filename */ +export declare function writeFile(data: IWorkBook, filename: string, opts?: IWritingOptions): any; +/** Attempts to write the workbook data */ +export declare function write(data: IWorkBook, opts?: IWritingOptions): any; + export declare var utils: IUtils; export interface IProperties { @@ -27,25 +33,125 @@ export interface IProperties { } export interface IParsingOptions { - cellFormula?: boolean; - cellHTML?: boolean; - cellNF?: boolean; - cellStyles?: boolean; - cellDates?: boolean; - sheetStubs?: boolean; - sheetRows?: number; - bookDeps?: boolean; - bookFiles?: boolean; - bookProps?: boolean; - bookSheets?: boolean; - bookVBA?: boolean; - password?: string; - bookType?: string; + /** + * Input data encoding + */ + type?: 'base64' | 'binary' | 'buffer' | 'array' | 'file'; /** - * Possible options: 'binary', 'base64', 'buffer', 'file' + * Save formulae to the .f field + * @default true */ - type?: string; + cellFormula?: boolean; + + /** + * Parse rich text and save HTML to the .h field + * @default true + */ + cellHTML?: boolean; + + /** + * Save number format string to the .z field + * @default false + */ + cellNF?: boolean; + + /** + * Save style/theme info to the .s field + * @default false + */ + cellStyles?: boolean; + + /** + * Store dates as type d (default is n) + * @default false + */ + cellDates?: boolean; + + /** + * Create cell objects for stub cells + * @default false + */ + sheetStubs?: boolean; + + /** + * If >0, read the first sheetRows rows + * @default 0 + */ + sheetRows?: number; + + /** + * If true, parse calculation chains + * @default false + */ + bookDeps?: boolean; + + /** + * If true, add raw files to book object + * @default false + */ + bookFiles?: boolean; + + /** + * If true, only parse enough to get book metadata + * @default false + */ + bookProps?: boolean; + + /** + * If true, only parse enough to get the sheet names + * @default false + */ + bookSheets?: boolean; + + /** + * If true, expose vbaProject.bin to vbaraw field + * @default false + */ + bookVBA?: boolean; + + /** + * If defined and file is encrypted, use password + * @default '' + */ + password?: string; +} + +export interface IWritingOptions { + /** + * Output data encoding + */ + type?: 'base64' | 'binary' | 'buffer' | 'file'; + + /** + * Store dates as type d (default is n) + * @default false + */ + cellDates?: boolean; + + /** + * Generate Shared String Table + * @default false + */ + bookSST?: boolean; + + /** + * Type of Workbook + * @default 'xlsx' + */ + bookType?: 'xlsx' | 'xlsm' | 'xlsb' | 'ods' | 'biff2' | 'fods' | 'csv'; + + /** + * Name of Worksheet for single-sheet formats + * @default '' + */ + sheet?: string; + + /** + * Use ZIP compression for ZIP-based formats + * @default false + */ + compression?: boolean; } export interface IWorkBook { @@ -75,19 +181,34 @@ export interface IWorkSheet { } export interface IWorkSheetCell { - /** - * The Excel Data Type of the cell. - * b Boolean, n Number, e error, s String, d Date - */ - t: string; - /** * The raw value of the cell. */ - v: string; + v: string | number | boolean | Date; /** - * rich text encoding (if applicable) + * Formatted text (if applicable) + */ + w?: string; + + /** + * The Excel Data Type of the cell. + * b Boolean, n Number, e error, s String, d Date + */ + t: 'b' | 'n' | 'e' | 's' | 'd'; + + /** + * Cell formula (if applicable) + */ + f?: string; + + /** + * Range of enclosing array if formula is array formula (if applicable) + */ + F?: string; + + /** + * Rich text encoding (if applicable) */ r?: string; @@ -97,56 +218,67 @@ export interface IWorkSheetCell { h?: string; /** - * formatted text (if applicable) - */ - w?: string; - - /** - * cell formula (if applicable) - */ - f?: string; - - /** - * comments associated with the cell ** + * Comments associated with the cell ** */ c?: string; /** - * number format string associated with the cell (if requested) + * Number format string associated with the cell (if requested) */ z?: string; /** - * cell hyperlink object (.Target holds link, .tooltip is tooltip) + * Cell hyperlink object (.Target holds link, .tooltip is tooltip) */ - l?: string; + l?: string | Object; /** - * the style/theme of the cell (if applicable) + * The style/theme of the cell (if applicable) */ s?: string; } export interface ICell { + /** Column number */ c: number; + /** Row number */ r: number; } export interface IRange { + /** Starting cell */ s: ICell; + /** Ending cell */ e: ICell; } export interface IUtils { + /** Converts a worksheet object to an array of JSON objects */ sheet_to_json(worksheet:IWorkSheet, opts?: { raw?: boolean; range?: any; header?: "A"|number|string[]; }):T[]; + /** Generates delimiter-separated-values output */ sheet_to_csv(worksheet: IWorkSheet, options?: { FS: string, RS: string }): string; + /** Generates a list of the formulae (with value fallbacks) */ sheet_to_formulae(worksheet: IWorkSheet):any; - encode_cell(cell: ICell): any; - encode_range(s: ICell, e: ICell): any; + + /** Converts 0-indexed cell address to A1 form */ + encode_cell(cell: ICell): string; + /** Converts 0-indexed row to A1 form */ + encode_row(row: number): string; + /** Converts 0-indexed column to A1 form */ + encode_col(col: number): string; + /** Converts 0-indexed range to A1 form */ + encode_range(s: ICell, e: ICell): string; + + /** Converts A1 cell address to 0-indexed form */ decode_cell(address: string): ICell; + /** Converts A1 row to 0-indexed form */ + decode_row(row: string): number; + /** Converts A1 column to 0-indexed form */ + decode_col(col: string): number; + /** Converts A1 range to 0-indexed form */ decode_range(range: string): IRange; }