Перейти к основному содержимому

Справочник типов

Все типы экспортируются из @dhx/react-spreadsheet или @dhtmlx/trial-react-spreadsheet.

import type { SheetData, CellData, SpreadsheetRef /* ... */ } from "@dhtmlx/trial-react-spreadsheet";

CellData

Декларативное состояние одной ячейки. Все свойства необязательны; пропущенные свойства сохраняют своё текущее значение при обновлениях.

СвойствоТипОписание
valuestring | numberЗначение ячейки: текст, число или строка формулы (с префиксом =).
cssstringИмя (имена) CSS-класса, ссылающееся на ключи в карте styles верхнего уровня.
formatstringМаска формата числа или псевдоним (например, "currency" или "#,##0.00").
lockedbooleanЗаблокирована ли ячейка (защищена от редактирования).
validationstring | string[]Варианты выпадающего списка для валидации данных.

RowConfig

Метаданные строки. Записи нужны только для строк с нестандартной конфигурацией.

СвойствоТипОписание
heightnumberВысота строки в пикселях.
hiddenbooleanСкрыта ли строка.

ColConfig

Метаданные столбца. Записи нужны только для столбцов с нестандартной конфигурацией.

СвойствоТипОписание
widthnumberШирина столбца в пикселях.
hiddenbooleanСкрыт ли столбец.

MergedRange

Определяет диапазон объединённых ячеек с использованием координат строк/столбцов, начиная с 0.

СвойствоТипОписание
from{ row: number; column: number }Верхний левый угол объединения (индекс с 0).
to{ row: number; column: number }Нижний правый угол объединения (индекс с 0).

Пример:

// Объединение A1:B2
const merge: MergedRange = {
from: { row: 0, column: 0 },
to: { row: 1, column: 1 },
};

FreezeConfig

Конфигурация закреплённой панели для листа.

СвойствоТипОписание
colnumberЗакрепить столбцы до этого номера столбца (индекс с 0). undefined = без закрепления столбцов.
rownumberЗакрепить строки до этого номера строки (индекс с 0). undefined = без закрепления строк.

SheetFilter

Конфигурация фильтра для столбца внутри листа.

СвойствоТипОписание
cellstringСсылка на ячейку, идентифицирующую отфильтрованный столбец (например, "A1").
rulesIFilterRules[]Применяемые правила фильтрации. Пустой массив сбрасывает фильтр.

SheetSort

Конфигурация сортировки для столбца внутри листа.

СвойствоТипОписание
cellstringСсылка на ячейку или диапазон для операции сортировки (например, "B1" или "A1:E8"). Используйте диапазон для сортировки нескольких столбцов с сохранением целостности строк.
dir1 | -1Направление сортировки: 1 = по возрастанию, -1 = по убыванию.

SheetData

Полное декларативное состояние одного листа таблицы.

СвойствоТипОбязательноОписание
idIdДаУникальный идентификатор листа. Должен быть стабильным между рендерами.
namestringДаОтображаемое имя на вкладке листа.
cellsRecord<string, CellData>ДаДанные ячеек, с ключом по ссылке на ячейку (например, "A1" или "B2"). Записи нужны только для ячеек с нестандартными данными.
rowsRecord<number, RowConfig>НетКонфигурация строк с ключом по номеру строки (индекс с 0).
colsRecord<number, ColConfig>НетКонфигурация столбцов с ключом по номеру столбца (индекс с 0).
mergedMergedRange[]НетДиапазоны объединённых ячеек.
freezeFreezeConfigНетКонфигурация закреплённых панелей.
filterSheetFilterНетКонфигурация фильтра столбца. Установите undefined, чтобы сбросить.
sortSheetSortНетКонфигурация сортировки.

Пример:

const sheet: SheetData = {
id: "sheet1",
name: "Inventory",
cells: {
A1: { value: "Product", css: "bold" },
B1: { value: "Quantity", css: "bold" },
A2: { value: "Laptop" },
B2: { value: 42 },
},
cols: { 0: { width: 200 } },
freeze: { row: 1 },
};

SearchConfig

Управляемое состояние поиска. Передайте объект для запуска/обновления поиска, передайте undefined, чтобы закрыть его.

СвойствоТипОбязательноОписание
querystringДаТекст для поиска.
openbooleanНетОткрыть ли встроенный интерфейс поиска. По умолчанию: false.
sheetIdIdНетОграничить поиск конкретным листом по id.

SpreadsheetLocale

Конфигурация локализации для меток интерфейса и названий формул.

СвойствоТипОписание
localeRecord<string, string>Переопределения строк интерфейса. Ключи соответствуют словарю локализации библиотеки.
formulasRecord<string, [string, string?][]>Локализованные имена формул, сгруппированные по категориям. Каждый элемент — кортеж: [localizedName, optionalDescription?].

SpreadsheetTheme

type SpreadsheetTheme = "light" | "dark" | "contrast-light" | "contrast-dark" | string;

Встроенные цветовые темы. Также принимает строки с именами пользовательских тем.

IExecuteConfig

Конфигурация выполнения действия, передаваемая в onBeforeAction / onAfterAction. Форма зависит от типа действия.

СвойствоТипОписание
rownumberИндекс целевой строки.
colnumberИндекс целевого столбца.
targetunknownЦель, специфичная для действия.
valunknownНовое значение.
prevunknownПредыдущее значение.
actionActions | stringИдентификатор действия.
groupActionActions | stringИдентификатор родительского группового действия.
cellstringСсылка на ячейку (например, "A1").
pageIdIdId целевого листа.
pageNamestringИмя целевого листа.
[key: string]unknownДополнительные свойства, специфичные для действия.

SpreadsheetRef

Императивный дескриптор, доступный через React.forwardRef. Предоставляет прямой доступ к базовому экземпляру DHTMLX Spreadsheet для операций, которые не отображаются на декларативные пропсы.

СвойствоТипОписание
instanceISpreadsheet | nullБазовый экземпляр виджета. null до инициализации и после размонтирования.

Пример:

const ref = useRef<SpreadsheetRef>(null);

// Сериализация данных
const data = ref.current?.instance?.serialize();

// Программный выбор
ref.current?.instance?.selection.setSelectedCell("A1:C5");

// Отмена/возврат
ref.current?.instance?.undo();
ref.current?.instance?.redo();

Перечисление Actions

Известные идентификаторы действий таблицы. Используются в onBeforeAction / onAfterAction для типобезопасного сопоставления действий. Объединение | string в параметрах обработчиков обеспечивает прямую совместимость с будущими действиями.

ЗначениеОписание
setCellStyleПрименить CSS-стиль к ячейке(ям).
setCellValueУстановить значение ячейки.
setCellFormatУстановить числовой формат для ячейки(ек).
removeCellStylesУдалить CSS-стили из ячейки(ек).
lockCellЗаблокировать или разблокировать ячейку(и).
deleteRowУдалить строку(и).
addRowВставить строку(и).
deleteColumnУдалить столбец(цы).
addColumnВставить столбец(цы).
groupActionГрупповое действие (несколько подзадач).
groupRowActionГрупповое действие со строками.
groupColActionГрупповое действие со столбцами.
addSheetДобавить новый лист.
deleteSheetУдалить лист.
renameSheetПереименовать лист.
clearSheetОчистить все данные на листе.
clearОчистить выделенные ячейки.
resizeColИзменить ширину столбца.
resizeRowИзменить высоту строки.
setValidationУстановить валидацию данных для ячейки(ек).
sortCellsСортировать ячейки.
insertLinkВставить гиперссылку.
fitColumnАвтоматически подогнать ширину столбца под содержимое.
filterПрименить или изменить фильтр столбца.
mergeОбъединить ячейки.
unmergeРазъединить ячейки.
toggleFreezeПереключить закрепление панелей.
toggleVisibilityПереключить видимость строки/столбца.

Псевдонимы типов обработчиков

Удобные псевдонимы для сигнатур функций, используемых пропсами-колбэками событий. Импортируйте их для явного аннотирования функций-обработчиков.

ТипСигнатураИспользуется в
BeforeActionHandler(action: Actions | string, config: IExecuteConfig) => boolean | voidonBeforeAction
AfterActionHandler(action: Actions | string, config: IExecuteConfig) => voidonAfterAction
BeforeCellHandler(cell: string) => boolean | voidonBeforeSelectionSet, onBeforeSelectionRemove, onBeforeFocusSet
AfterCellHandler(cell: string) => voidonAfterSelectionSet, onAfterSelectionRemove, onAfterFocusSet
BeforeEditHandler(cell: string, value: string) => boolean | voidonBeforeEditStart, onBeforeEditEnd
AfterEditHandler(cell: string, value: string) => voidonAfterEditStart, onAfterEditEnd
BeforeSheetHandler(sheet: ISheet) => boolean | voidonBeforeSheetChange
AfterSheetHandler(sheet: ISheet) => voidonAfterSheetChange

SpreadsheetConfigProps

type SpreadsheetConfigProps = Omit<
ISpreadsheetConfig,
"leftSplit" | "topSplit" | "dateFormat" | "timeFormat"
>;

Базовый тип для пропсов компонента. Открывает все параметры конструктора ISpreadsheetConfig как плоские пропсы.

Переэкспортируемые вышестоящие типы

Эти типы переэкспортируются из @dhx/ts-spreadsheet для удобства:

ТипОписание
ISpreadsheetИнтерфейс основного экземпляра виджета таблицы.
ISpreadsheetConfigИнтерфейс конфигурации конструктора.
ISheetИнтерфейс экземпляра листа (используется в колбэках событий листа).
IFormatsОпределение пользовательского числового формата.
IFilterRulesКонфигурация правила фильтрации.
IFilterИнтерфейс экземпляра фильтра.
IStylesListКарта определений стилей.
IDataWithStylesСтруктура данных со встроенными стилями (используется serialize()/parse()).
ICellInfoИнформация о ячейке, возвращаемая методами виджета.
FileFormatФормат файла для загрузки данных (например, "json" или "xlsx").
ToolbarBlocksИдентификаторы блоков панели инструментов (например, "default", "undo" или "font").
FilterConditionsПеречисление доступных типов условий фильтрации.
IdУниверсальный тип идентификатора (string | number).