forked from sheetjs/sheetjs
		
	Add typescript definition file from @types/xlsx.
This commit is contained in:
		
						commit
						02d4542ef0
					
				
							
								
								
									
										436
									
								
								types/index.d.ts
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
								
								
								
								
								
									
									
								
							
						
						
									
										436
									
								
								types/index.d.ts
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| @ -0,0 +1,436 @@ | ||||
| // Type definitions for xlsx
 | ||||
| // Project: https://github.com/SheetJS/js-xlsx
 | ||||
| // Definitions by: themauveavenger <https://github.com/themauveavenger/>, Wolfgang Faust <https://github.com/wolfgang42>
 | ||||
| // Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
 | ||||
| 
 | ||||
| /** Attempts to read filename and parse */ | ||||
| export function readFile(filename: string, opts?: IParsingOptions): IWorkBook; | ||||
| /** Attempts to parse data */ | ||||
| export function read(data: any, opts?: IParsingOptions): IWorkBook; | ||||
| /** Attempts to write workbook data to filename */ | ||||
| export function writeFile(data: IWorkBook, filename: string, opts?: IWritingOptions): any; | ||||
| /** Attempts to write the workbook data */ | ||||
| export function write(data: IWorkBook, opts?: IWritingOptions): any; | ||||
| 
 | ||||
| export const utils: IUtils; | ||||
| 
 | ||||
| export interface IProperties { | ||||
|     LastAuthor?: string; | ||||
|     Author?: string; | ||||
|     CreatedDate?: Date; | ||||
|     ModifiedDate?: Date; | ||||
|     Application?: string; | ||||
|     AppVersion?: string; | ||||
|     Company?: string; | ||||
|     DocSecurity?: string; | ||||
|     Manager?: string; | ||||
|     HyperlinksChanged?: boolean; | ||||
|     SharedDoc?: boolean; | ||||
|     LinksUpToDate?: boolean; | ||||
|     ScaleCrop?: boolean; | ||||
|     Worksheets?: number; | ||||
|     SheetNames?: string[]; | ||||
| } | ||||
| 
 | ||||
| export interface IParsingOptions { | ||||
|     /** | ||||
|      * Input data encoding | ||||
|      */ | ||||
|     type?: 'base64' | 'binary' | 'buffer' | 'array' | 'file'; | ||||
| 
 | ||||
|     /** | ||||
|      * Save formulae to the .f field | ||||
|      * @default true | ||||
|      */ | ||||
|     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 { | ||||
|     /** | ||||
|      * A dictionary of the worksheets in the workbook. | ||||
|      * Use SheetNames to reference these. | ||||
|      */ | ||||
|     Sheets: { [sheet: string]: IWorkSheet }; | ||||
| 
 | ||||
|     /** | ||||
|      * ordered list of the sheet names in the workbook | ||||
|      */ | ||||
|     SheetNames: string[]; | ||||
| 
 | ||||
|     /** | ||||
|      * an object storing the standard properties. wb.Custprops stores custom properties. | ||||
|      * Since the XLS standard properties deviate from the XLSX standard, XLS parsing stores core properties in both places. | ||||
|      */ | ||||
|     Props: IProperties; | ||||
| } | ||||
| 
 | ||||
| export interface IColInfo { | ||||
|     /** | ||||
|      * Excel's "Max Digit Width" unit, always integral | ||||
|      */ | ||||
|     MDW?: number; | ||||
|     /** | ||||
|      * width in Excel's "Max Digit Width", width*256 is integral | ||||
|      */ | ||||
|     width: number; | ||||
|     /** | ||||
|      * width in screen pixels | ||||
|      */ | ||||
|     wpx?: number; | ||||
|     /** | ||||
|      * intermediate character calculation | ||||
|      */ | ||||
|     wch?: number; | ||||
|     /** | ||||
|      * if true, the column is hidden | ||||
|      */ | ||||
|     hidden?: boolean; | ||||
| } | ||||
| export interface IRowInfo { | ||||
|     /** | ||||
|      * height in screen pixels | ||||
|      */ | ||||
|     hpx?: number; | ||||
|     /** | ||||
|      * height in points | ||||
|      */ | ||||
|     hpt?: number; | ||||
|     /** | ||||
|      * if true, the column is hidden | ||||
|      */ | ||||
|     hidden?: boolean; | ||||
| } | ||||
| 
 | ||||
| /** | ||||
|  * Write sheet protection properties. | ||||
|  */ | ||||
| export interface IProtectInfo { | ||||
|     /** | ||||
|      * The password for formats that support password-protected sheets | ||||
|      * (XLSX/XLSB/XLS). The writer uses the XOR obfuscation method. | ||||
|      */ | ||||
|     password?: string; | ||||
|     /** | ||||
|      * Select locked cells | ||||
|      * @default: true | ||||
|      */ | ||||
|     selectLockedCells?: boolean; | ||||
|     /** | ||||
|      * Select unlocked cells | ||||
|      * @default: true | ||||
|      */ | ||||
|     selectUnlockedCells?: boolean; | ||||
|     /** | ||||
|      * Format cells | ||||
|      * @default: false | ||||
|      */ | ||||
|     formatCells?: boolean; | ||||
|     /** | ||||
|      * Format columns | ||||
|      * @default: false | ||||
|      */ | ||||
|     formatColumns?: boolean; | ||||
|     /** | ||||
|      * Format rows | ||||
|      * @default: false | ||||
|      */ | ||||
|     formatRows?: boolean; | ||||
|     /** | ||||
|      * Insert columns | ||||
|      * @default: false | ||||
|      */ | ||||
|     insertColumns?: boolean; | ||||
|     /** | ||||
|      * Insert rows | ||||
|      * @default: false | ||||
|      */ | ||||
|     insertRows?: boolean; | ||||
|     /** | ||||
|      * Insert hyperlinks | ||||
|      * @default: false | ||||
|      */ | ||||
|     insertHyperlinks?: boolean; | ||||
|     /** | ||||
|      * Delete columns | ||||
|      * @default: false | ||||
|      */ | ||||
|     deleteColumns?: boolean; | ||||
|     /** | ||||
|      * Delete rows | ||||
|      * @default: false | ||||
|      */ | ||||
|     deleteRows?: boolean; | ||||
|     /** | ||||
|      * Sort | ||||
|      * @default: false | ||||
|      */ | ||||
|     sort?: boolean; | ||||
|     /** | ||||
|      * Filter | ||||
|      * @default: false | ||||
|      */ | ||||
|     autoFilter?: boolean; | ||||
|     /** | ||||
|      * Use PivotTable reports | ||||
|      * @default: false | ||||
|      */ | ||||
|     pivotTables?: boolean; | ||||
|     /** | ||||
|      * Edit objects | ||||
|      * @default: true | ||||
|      */ | ||||
|     objects?: boolean; | ||||
|     /** | ||||
|      * Edit scenarios | ||||
|      * @default: true | ||||
|      */ | ||||
|     scenarios?: boolean; | ||||
| } | ||||
| 
 | ||||
| /** | ||||
|  * object representing any sheet (worksheet or chartsheet) | ||||
|  */ | ||||
| export interface ISheet { | ||||
|     '!ref'?: string; | ||||
|     '!margins'?: { | ||||
|         left: number, | ||||
|         right: number, | ||||
|         top: number, | ||||
|         bottom: number, | ||||
|         header: number, | ||||
|         footer: number, | ||||
|     }; | ||||
| } | ||||
| 
 | ||||
| /** | ||||
|  * object representing the worksheet | ||||
|  */ | ||||
| export interface IWorkSheet extends ISheet { | ||||
|     [cell: string]: IWorkSheetCell | any; | ||||
|     '!cols'?: IColInfo[]; | ||||
|     '!rows'?: IRowInfo[]; | ||||
|     '!merges'?: IRange[]; | ||||
|     '!protect'?: IProtectInfo; | ||||
|     '!autofilter'?: {ref: string}; | ||||
| } | ||||
| 
 | ||||
| /** | ||||
|  * The Excel data type for a cell. | ||||
|  * b Boolean, n Number, e error, s String, d Date | ||||
|  */ | ||||
| export type ExcelDataType = 'b' | 'n' | 'e' | 's' | 'd'; | ||||
| 
 | ||||
| export interface IWorkSheetCell { | ||||
|     /** | ||||
|      * The raw value of the cell. | ||||
|      */ | ||||
|     v: string | number | boolean | Date; | ||||
| 
 | ||||
|     /** | ||||
|      * Formatted text (if applicable) | ||||
|      */ | ||||
|     w?: string; | ||||
| 
 | ||||
|     /** | ||||
|      * The Excel Data Type of the cell. | ||||
|      * b Boolean, n Number, e error, s String, d Date | ||||
|      */ | ||||
|     t: ExcelDataType; | ||||
| 
 | ||||
|     /** | ||||
|      * 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; | ||||
| 
 | ||||
|     /** | ||||
|      * HTML rendering of the rich text (if applicable) | ||||
|      */ | ||||
|     h?: string; | ||||
| 
 | ||||
|     /** | ||||
|      * Comments associated with the cell ** | ||||
|      */ | ||||
|     c?: string; | ||||
| 
 | ||||
|     /** | ||||
|      * Number format string associated with the cell (if requested) | ||||
|      */ | ||||
|     z?: string; | ||||
| 
 | ||||
|     /** | ||||
|      * Cell hyperlink object (.Target holds link, .tooltip is tooltip) | ||||
|      */ | ||||
|     l?: Object; | ||||
| 
 | ||||
|     /** | ||||
|      * The style/theme of the cell (if applicable) | ||||
|      */ | ||||
|     s?: Object; | ||||
| } | ||||
| 
 | ||||
| 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 an array of arrays of JS data to a worksheet. */ | ||||
|     aoa_to_sheet<T>(data: T[], opts?: any): IWorkSheet; | ||||
| 
 | ||||
|     /** Converts a worksheet object to an array of JSON objects */ | ||||
|     sheet_to_json<T>(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; | ||||
| 
 | ||||
|     /** 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; | ||||
| } | ||||
							
								
								
									
										23
									
								
								types/tsconfig.json
									
									
									
									
									
										Normal file
									
								
							
							
								
								
								
								
								
									
									
								
							
						
						
									
										23
									
								
								types/tsconfig.json
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,23 @@ | ||||
| { | ||||
|     "compilerOptions": { | ||||
|         "module": "commonjs", | ||||
|         "lib": [ | ||||
|             "es6", | ||||
|             "dom" | ||||
|         ], | ||||
|         "noImplicitAny": true, | ||||
|         "noImplicitThis": true, | ||||
|         "strictNullChecks": false, | ||||
|         "baseUrl": "../", | ||||
|         "typeRoots": [ | ||||
|             "../" | ||||
|         ], | ||||
|         "types": [], | ||||
|         "noEmit": true, | ||||
|         "forceConsistentCasingInFileNames": true | ||||
|     }, | ||||
|     "files": [ | ||||
|         "index.d.ts", | ||||
|         "xlsx-tests.ts" | ||||
|     ] | ||||
| } | ||||
							
								
								
									
										6
									
								
								types/tslint.json
									
									
									
									
									
										Normal file
									
								
							
							
								
								
								
								
								
									
									
								
							
						
						
									
										6
									
								
								types/tslint.json
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,6 @@ | ||||
| { | ||||
|     "extends": "dtslint/dt.json", | ||||
|     "rules": { | ||||
|         "interface-name": [true, "always-prefix"] | ||||
|     } | ||||
| } | ||||
							
								
								
									
										25
									
								
								types/xlsx-tests.ts
									
									
									
									
									
										Normal file
									
								
							
							
								
								
								
								
								
									
									
								
							
						
						
									
										25
									
								
								types/xlsx-tests.ts
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,25 @@ | ||||
| import xlsx = require('xlsx'); | ||||
| 
 | ||||
| const options: xlsx.IParsingOptions = { | ||||
|     cellDates: true | ||||
| }; | ||||
| 
 | ||||
| const workbook = xlsx.readFile('test.xlsx', options); | ||||
| const otherworkbook = xlsx.readFile('test.xlsx', {type: 'file'}); | ||||
| 
 | ||||
| console.log(workbook.Props.Author); | ||||
| 
 | ||||
| const firstsheet: string = workbook.SheetNames[0]; | ||||
| 
 | ||||
| const firstworksheet = workbook.Sheets[firstsheet]; | ||||
| 
 | ||||
| console.log(firstworksheet["A1"]); | ||||
| 
 | ||||
| interface ITester { | ||||
|     name: string; | ||||
|     age: number; | ||||
| } | ||||
| 
 | ||||
| const jsonvalues: ITester[] = xlsx.utils.sheet_to_json<ITester>(firstworksheet); | ||||
| const csv = xlsx.utils.sheet_to_csv(firstworksheet); | ||||
| const formulae = xlsx.utils.sheet_to_formulae(firstworksheet); | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user