core-cde
Version:
236 lines (235 loc) • 9.29 kB
TypeScript
import { CellValue, RawCellContent, SimpleCellAddress } from 'hyperformula';
import { IWithId } from '../../stateChanger/StateChanger.module';
import { EventDispatcher } from '../../events/Events.module';
import * as DM from '../Data.module';
export interface DataTableJSON {
columns: DM.DataColumn[];
rows: DM.DataRow[];
uniqueName: string;
id: string;
}
export declare class DataTable implements IWithId {
private static _hashCounter;
private _hashCode;
private _columns;
private _rows;
private _sheetId;
private _uniqueName;
private _ds;
id: string;
get hashCode(): number;
private _onDataRowAdded;
get onDataRowAdded(): EventDispatcher<DataRowAddedArg>;
private _onDataRowRemoved;
get onDataRowRemoved(): EventDispatcher<DataRowRemovedArg>;
private _onDataColumnAdded;
get onDataColumnAdded(): EventDispatcher<DataColumnAddedArg>;
private _onDataColumnRemoved;
get onDataColumnRemoved(): EventDispatcher<DataColumnRemovedArg>;
/**
* Конструктор. Не предназначен для использования внешним кодом.
* Следует использовать DataTable.createNew(), DataSet.addTable()
*/
constructor();
static createNew(dataSet: DM.DataSet, uniqueName: string, id?: string): DataTable;
static fromJSON(json: DataTableJSON | string): DataTable;
toJSON(): DataTableJSON;
private onDataSetValuesUpdated;
/**
* Возвращает объект набора данных, к которому принадлежит таблица
*/
get dataSet(): DM.DataSet;
/**
* Возвращает уникальное имя таблицы
*/
get uniqueName(): string;
/**
* Задает уникальное имя таблицы
*/
set uniqueName(value: string);
/**
* Задает значение идентификатора листа в HyperFormula
*/
get sheetId(): number;
/**
* Возвращает значение идентификатора листа в HyperFormula
*/
set sheetId(value: number);
get columns(): DM.DataColumn[];
get columnCollection(): DM.DataColumnCollection;
get rowCollection(): DM.DataRowCollection;
/**
* Возвращает количество колонок
*/
get columnsCount(): number;
/**
* Возвращает объект колонки
* @param index Индекс колонки
*/
getColumnByIndex(index: number): DM.DataColumn;
/**
* Возвращает колонку по имени. Если не найдено - возвращает undefined
*/
getColumnByName(columnName: string): DM.DataColumn;
/**
* Вставляет колонку в таблицу в указанной позиции
* @param index Индекс по которому будет вставлена колонка
* @param columnName Имя колонки
* @param dataType Тип данных. По умолчанию - string
*/
insertColumn(index: number, columnName: string, dataType?: DM.DataType, values?: RawCellContent[]): DM.DataColumn;
/**
* Добавляет колонку в таблицу
* @param columnName Имя колонки
* @param dataType Тип данных. По умолчанию - string
*/
addColumn(columnName: string, dataType?: DM.DataType): DM.DataColumn;
/**
* Изменить тип колонки
* @param column Название колонки
* @param type Тип колонки
* @returns Колонка
*/
changeTypeColumn(name: string, type: DM.DataType): DM.DataColumn;
/**
* Изменить тип колонки
* @param index Index колонки
* @param type Тип колонки
* @returns Колонка
*/
changeTypeColumn(index: number, type: DM.DataType): DM.DataColumn;
/**
* Изменить тип колонки
* @param column Колонка
* @param type Тип колонки
* @returns Колонка
*/
changeTypeColumn(column: DM.DataColumn, type: DM.DataType): DM.DataColumn;
/**
* Удаляет колонку и возвращает количество удаленных колонок
*/
removeColumn(column: DM.DataColumn): number;
/**
* Удаляет колонку по индексу и возвращает количество удаленных колонок
*/
removeColumnByIndex(index: number): number;
/**
* Удаляет колонку по имени и возвращает количество удаленных колонок
*/
removeColumnByName(columnName: string): number;
/**
* Возвращает индекс колонки по имени. Если не найдено - возвращает -1
*/
getColumnOrdinal(columnName: string): number;
/**
* Возвращает количество строк в таблице
*/
get rowCount(): number;
/**
* Удаляет все строки таблицы
*/
removeAllRows(): void;
/**
* Не предназначен для использования внешним кодом
*/
addRowsItem(index: number): void;
/**
* Не предназначен для использования внешним кодом
*/
removeRowsItem(index: number): void;
getCellAddress(row: number, col: number): SimpleCellAddress;
/**
* Возвращает оригинальные значения колонки по индексу. Если не найдено - undefined
*/
getColumnValues(col: number): Array<DM.DataItem>;
/**
* Возвращает оригинальные значения строки по индексу. Если не найдено - undefined
*/
getRowValues(row: number): Array<any>;
getRowValuesTest(row: number): Array<DM.DataItem>;
/**
* Возвращает значение формулы в ячейке
* @param row индекс строки
* @param col индекс колонки
*/
getCellFormula(row: number, col: number): string;
/**
* Возвращает рассчитанное значение ячейки
* @param row Индекс строки
* @param col Индекс колонки
*/
getCellValue(row: number, col: number): CellValue;
/**
* Задает оригинальное значение ячейки
* @param row Индекс строки
* @param col Индекс колонки
* @param value Значение
*/
setCellValue(row: number, col: number, value: RawCellContent): void;
private assignDataRowsToSheet;
refreshAfterRestore(): void;
getRowIndex(row: DM.DataRow): number;
/**
* Возвращает коллекцию записей таблицы
*/
getRowCollection(): DM.DataRowCollection;
/**
* Возвращает расчитанные значения строки по индексу. Если не найдено - undefined
* @param index Индект строки
*/
getRowSheetValues(index: number): RawCellContent[];
/**
* Добавить новую запись
*/
addRow(values?: RawCellContent[]): DM.DataRow;
/**
* Вставляет новую запись по указанному индексу
*/
insertRow(index: number, values?: RawCellContent[]): DM.DataRow;
private addRowToHyperformulaShadow;
private addRowToHyperformula;
/**
* Удалить запись
*/
removeRow(index: number): number;
/**
* Возвращает рассчитанные значения таблицы
*/
getSheetValues(): RawCellContent[][];
/**
* Задает DataSet для таблицы
*/
setDataSet(dataSet: DM.DataSet | null): void;
/**
* Получить новое имя для колонки
* @param indexColumn Index колонки
* @returns Имя колонки
*/
generationColumnName(indexColumn: number): string;
private throwIfDataSetIsNull;
private isDataSetEmpty;
private raiseDataRowAdded;
private raiseDataRowRemoved;
private raiseDataColumnAdded;
private raiseDataColumnRemoved;
}
export declare class DataRowAddedArg {
sender: any;
row: DM.DataRow;
constructor(sender: any, row: DM.DataRow);
}
export declare class DataRowRemovedArg {
sender: any;
row: DM.DataRow;
constructor(sender: any, row: DM.DataRow);
}
export declare class DataColumnAddedArg {
sender: any;
column: DM.DataColumn;
constructor(sender: any, column: DM.DataColumn);
}
export declare class DataColumnRemovedArg {
sender: any;
column: DM.DataColumn;
constructor(sender: any, column: DM.DataColumn);
}