UNPKG

excel2json

Version:
108 lines (107 loc) 2.34 kB
/** * @fileOverview excel2json main * @name index * @author Yuhei Aihara * https://github.com/iyu/excel2json */ import { ILogger } from './logger'; interface Opts { option_cell?: string; attr_line?: number; data_line?: number; ref_key?: string; logger?: ILogger; } interface DefaultOpts { option_cell: string; attr_line: number; data_line: number; ref_key: string; logger?: ILogger; } interface Cell { cell: string; column: string; row: number; value: string; } interface CellOpts { attr_line: number; data_line: number; ref_key: string; format?: { [key: string]: { type: string | null; key: string; keys: string[]; }; }; name?: string; type?: string; key?: string; } interface ParseResult { num: number; name: string; opts: CellOpts; list: any[]; } interface ParseError { num: number; name: string; error: Error; } declare class Excel2Json { opts: DefaultOpts; logger: ILogger; private _parser; /** * setup * @param {Object} options * @example * var options = { * option_cell: 'A1', * attr_line: 2, * data_line: 4, * ref_key: '_id', * logger: CustomLogger * }; */ setup(options: Opts): this; /** * format * @param {Array} cells * @private * @example * var cells = [ * { cell: 'A1', value: '{}' }, { cell: 'A4', value: '_id' },,, * ] */ _format(cells: Cell[]): { opts: CellOpts; list: any[]; }; /** * find origin data * @param dataMap * @param opts * @param data * @private */ _findOrigin(dataMap: any, opts: CellOpts, data: any): any; /** * excel parser main script * @param {String} filepath * @param {Array} sheets * @param {Function} callback */ parse(filepath: string, sheets: [], callback: (err: Error | null, result?: ParseResult[], errList?: ParseError[]) => void): Promise<void>; /** * sheetDatas to json * @param {Array} sheetDatas * @param {Function} callback */ toJson(sheetDatas: ParseResult[], callback: Function): void; } declare const _default: Excel2Json; export default _default;