/// /// import { IStoreState, IColumn, IRow, ICellNN, ID, ICell } from '../../index.data'; import { SpreadSheetRuntime } from '../../RuntimeContext'; /** * 在第j列插入空列, 空列为column * @param state * @param j * @param column * @param cellsToFill 在插列完毕后, 可以将cellsToFill从上到下填入cell * @param forceMergePolicy : 在第4列插入, 第1行的第1个单元格colspan=3, 则插入后, 不新增单元格, 将colspan设为4 * 插入前: 1 2 3 4 * __ _ __ _ __ | _ | _ * __ | __ | __ | _ | _ * __ | __ | __ | _ | _ * 若autoMerge=[]: * 插入后: 1 2 3 4(new) 5 * __ _ __ _ __ | _ | _ | _ * __ | __ | __ | _ | _ | _ * __ | __ | __ | _ | _ | _ * 若autoMerge=[left]: * 插入后: 1 2 3 4(new) 5 * __ _ __ _ __ _ _ | _ | _ * __ | __ | __ | _ | _ | _ * __ | __ | __ | _ | _ | _ * 注意: 无论autoMerge为何, 如果在第2列插入, 则无论如何1234都会被合并 * * @param runtime * @param testing 如果为true, 则将生成 randomid1 这样的cellid, 供测试 */ export declare function insertColumn(state: IStoreState, j: number, column: IColumn, cellsToFill: Partial[], forceMergePolicy: 'left' | null, // 向right合并很不常见, 并且需要删除单元格, 有点麻烦, 忽略 copyCellAttrs: ('value' | 'formula' | 'locked')[], //新创建的cell要复制相邻 cell 的哪些属性 runtime: SpreadSheetRuntime, testing?: boolean): { newState: Partial; updatedStaleCells: ICellNN[]; }; export declare function deleteColumn(state: IStoreState, j: number, runtime: SpreadSheetRuntime, testing?: boolean): { newState: { cells: Record; cellDeps: Record; varDeps: Record; rows: IRow[]; columns: IColumn[]; } | { rows: IRow[]; columns: IColumn[]; cells: any; }; updatedStaleCells: ICellNN[]; deletedCells: ICell[]; insertedCells: ICell[]; }; /** * 往row的第j列, 插入一个空白cell * 如果j-1 与 old_j 已经合并, 则插入后j-1 与 j 与 j+1(即old_j) 都将合并 * 如果j-2 与 j-1 已经合并, 但j-1与old_j并未合则, 则: * 若forceMergePolicy==='left', 则 三者合并 * 若forceMergePolicy===null, 则 没有任何合并 * @param row: 要插入cell的行 * @param j: 要在第j列插入 * @param baseCell: 如果为null, 则复制closestCell, 否则复制baseCell ( 可从外部提供 ) * @param cellMap * @param forceMergePolicy * @param copyCellAttrs * @param testing */ export declare function insertCell(row: IRow, baseCell: ICell, updatedPreRowColspans: number[], cellMap: Record, j: number, forceMergePolicy: 'left' | null, copyCellAttrs: ('value' | 'formula' | 'locked')[], testing?: boolean): { insertedCell: null; updatedCell: { old: ICellNN; new: { colspan: number; id: ID; rowId?: string | number | undefined; i?: number | undefined; j?: number | undefined; rowspan?: number | undefined; style?: import("react").CSSProperties | undefined; format?: import("../../index.data").NumericFormat | undefined; value?: any; type?: string | undefined; dataType?: string | undefined; locked?: boolean | undefined; delay?: boolean | undefined; meta?: any; formula?: string | undefined; formulaDisabled?: boolean | undefined; error?: string | null | undefined; }; }; updatedRow: { cellIds: (string | number | null)[]; id: ID; type?: "header" | "body" | "footer" | undefined; area?: "tree" | "flatten" | undefined; meta?: any; sealed?: boolean | undefined; level?: number | undefined; i?: number | undefined; style?: import("react").CSSProperties | undefined; additions?: any; height?: number | undefined; }; sourceCell: null; } | { insertedCell: null; updatedCell: null; updatedRow: { cellIds: (string | number | null)[]; id: ID; type?: "header" | "body" | "footer" | undefined; area?: "tree" | "flatten" | undefined; meta?: any; sealed?: boolean | undefined; level?: number | undefined; i?: number | undefined; style?: import("react").CSSProperties | undefined; additions?: any; height?: number | undefined; }; sourceCell: null; } | { insertedCell: ICellNN; updatedCell: null; updatedRow: { cellIds: (string | number | null)[]; id: ID; type?: "header" | "body" | "footer" | undefined; area?: "tree" | "flatten" | undefined; meta?: any; sealed?: boolean | undefined; level?: number | undefined; i?: number | undefined; style?: import("react").CSSProperties | undefined; additions?: any; height?: number | undefined; }; sourceCell: ICell; }; /** * 从row中, 删除第j列的单元格. 已考虑合并单元格的影响 */ export declare function deleteCell(row: IRow, cellMap: Record, j: number, testing?: boolean): { updatedCell: { old: ICellNN; new: ICellNN; } | null; deletedCell: ICellNN | null; updatedRow: IRow; insertedCell: ICellNN | null; };