UNPKG

@asasugar-use/custom-json2excel

Version:

✌传入json,可自定义表格标题名称和列数、头部名称、过滤列和绑定生成开始与成功的回调函数

82 lines (81 loc) 2.96 kB
import type { AnyObject, AnyObjectArray, VoidFunction, Json2ExcelParams, ElsExtend } from './typing'; export declare class JsonToExcel { data: AnyObjectArray; scope?: AnyObject; orderedKey?: string[]; filters?: string[]; title?: ElsExtend[]; footer?: ElsExtend[]; keyMap?: AnyObject; name?: string; type?: 'xls' | 'csv'; onStart?: VoidFunction; onSuccess?: VoidFunction; onError?: (err?: any) => void; constructor({ data, scope, orderedKey, filters, title, footer, keyMap, name, type, onStart, onSuccess, onError, }: Json2ExcelParams); generate(): void; private _getObjLastValue; /** * 将 JSON 数据中的键名转换为自定义(如果有配置) * @param json - 要转换的 JSON 数据 * @returns 转换后的 JSON 数据 */ private _toChsKeys; /** * 下载文件 * @param blob - 要下载的 Blob 对象 * @param filename - 文件名 */ private _download; /** * 导出文件 * @param data - 文件数据 * @param filename - 文件名 * @param mime - 文件类型 */ private _export; /** * 将 JSON 数据转换为 XLS 文件 * @param data - 要转换的 JSON 数据 * @returns 转换后的 XLS 文件内容 */ private _jsonToXLS; /** * 将 JSON 数据转换为 CSV 文件 * @param data - 要转换的 JSON 数据 * @returns 转换后的 CSV 文件内容 */ private _jsonToCSV; /** * 处理 JSON 数据 * @param data - 要处理的 JSON 数据 * @returns 处理后的 JSON 数据 */ private _getProcessedJson; /** * 获取对象数组的键集合 * @param data 对象数组,每个元素是一个对象 * @returns 返回一个对象,其属性名来自于数组中第一个对象的键 */ private _getKeys; /** * 获取嵌套数据 * 该方法用于根据嵌套的键获取对象中深层的值 * @param key {Object} 包含要访问的字段名称的对象或字段名称本身 * @param item {Object} 包含嵌套数据的项 * @returns {any} 返回从嵌套键获取的值,如果值为null或undefined,则返回空字符串 */ private _getNestedData; /** * 调用特定字段的回调函数 * * 此函数用于检查给定的字段对象是否包含一个回调函数,并在存在的情况下调用该回调函数 * 如果回调函数不存在或字段不是一个对象,则直接返回传入的itemValue值 * * @param field 包含callback属性的字段对象,callback属性是一个函数 * @param itemValue 要传递给回调函数的值,如果没有回调函数则直接返回这个值 * @returns 调用回调函数后的结果或直接返回的itemValue */ private _callItemCallback; } export declare function excelToJson(rawFile: File): Promise<import("./typing").ExcelData<any>[]>;