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

Работа с листами

Начиная с версии v4.1, вы можете работать с несколькими листами в таблице.

В этой статье описано, как добавить новый лист, удалить ненужный лист, получить все листы и получить текущий активный лист с помощью методов API. Также объясняется, как загрузить несколько листов в таблицу одновременно.

Примечание

Чтобы узнать, как взаимодействовать с несколькими листами через пользовательский интерфейс, ознакомьтесь с нашим Руководством пользователя.

Начиная с версии v6.0, управление листами осуществляется через модуль Sheet Manager посредством свойства spreadsheet.sheets. Выделенный API Sheet Manager заменяет методы работы с листами, которые ранее были доступны непосредственно на экземпляре Spreadsheet.

Загрузка нескольких листов

Чтобы загрузить несколько листов в таблицу, подготовьте данные с нужным количеством листов и их конфигурацией и передайте их в метод parse() в качестве параметра. Данные должны быть объектом object. Ознакомьтесь со списком атрибутов, которые может содержать объект.

Примечание

Если параметр конфигурации multiSheets установлен в false, создаётся только один лист.

Добавление нового листа

Чтобы добавить новый лист в таблицу, используйте метод sheets.add() и передайте имя нового листа в качестве параметра:

const spreadsheet = new dhx.Spreadsheet("spreadsheet_container", {
multiSheets: true
});
spreadsheet.parse(data);

// Добавление листа с пользовательским именем
const newSheetId = spreadsheet.sheets.add("Q4 Report");
console.log(newSheetId); // например, "sheet_2"

// Добавление листа с автоматически сгенерированным именем
const anotherId = spreadsheet.sheets.add();

Метод возвращает идентификатор созданного листа.

Удаление листа

Вы можете удалить лист из таблицы по его идентификатору с помощью метода sheets.remove():

const spreadsheet = new dhx.Spreadsheet("spreadsheet_container", {
multiSheets: true
});
spreadsheet.parse(data);

// Удаление листа по его идентификатору
spreadsheet.sheets.remove("sheet_2");

Обратите внимание, что лист не удаляется, если в таблице менее 2 листов.

Установка активного листа

Чтобы динамически изменить активный лист после инициализации таблицы, используйте метод sheets.setActive(). Он принимает идентификатор листа в качестве параметра:

const spreadsheet = new dhx.Spreadsheet("spreadsheet_container", {
multiSheets: true
});
spreadsheet.parse(data);

// Переключение на второй лист
spreadsheet.sheets.setActive("sheet_2");

// Проверка переключения
const active = spreadsheet.sheets.getActive();
console.log(active.name); // "Sheet 2"

Связанный пример: Spreadsheet. Установка активного листа

Получение активного листа

Вы можете получить текущий активный лист с помощью метода sheets.getActive():

const spreadsheet = new dhx.Spreadsheet("spreadsheet_container", {
multiSheets: true
});
spreadsheet.parse(data);

const active = spreadsheet.sheets.getActive();
console.log(active.name); // "Sheet 1"
console.log(active.id); // "sheet_1"

Метод возвращает объект с атрибутами name и id текущего активного листа.

Получение всех листов

Метод sheets.getAll() возвращает все листы таблицы в виде массива объектов листов:

const spreadsheet = new dhx.Spreadsheet("spreadsheet_container", {
multiSheets: true
});
spreadsheet.parse(data);

const allSheets = spreadsheet.sheets.getAll();
console.log(allSheets);
// [
// { id: "sheet_1", name: "Sheet 1" },
// { id: "sheet_2", name: "Sheet 2" }
// ]

Получение листа по идентификатору

Чтобы получить объект одного листа по его идентификатору, используйте метод sheets.get():

const spreadsheet = new dhx.Spreadsheet("spreadsheet_container", {
multiSheets: true
});
spreadsheet.parse(data);

const sheet = spreadsheet.sheets.get("sheet_1");
console.log(sheet.name); // "Sheet 1"

Очистка листов

Вы можете очистить данные указанного листа по его идентификатору с помощью метода sheets.clear():

const spreadsheet = new dhx.Spreadsheet("spreadsheet_container", {
multiSheets: true
});
spreadsheet.parse(data);

// Очистка конкретного листа по идентификатору
spreadsheet.sheets.clear("sheet_1");

// Очистка текущего активного листа
spreadsheet.sheets.clear();

Связанный пример: Spreadsheet. Очистка

Если нужно очистить всю таблицу сразу, используйте метод clear().