excel2json
Version:
excel2json
108 lines (107 loc) • 2.34 kB
TypeScript
/**
* @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;