跳到主要内容

工作表操作

从 v4.1 开始,您可以在电子表格中使用多个工作表

本文介绍如何通过 API 方法添加新工作表、删除不需要的工作表、获取所有工作表以及获取当前活动工作表。此外还说明了如何一次性将多个工作表加载到电子表格中。

备注

要了解如何通过用户界面与多个工作表交互,请查阅我们的用户指南

从 v6.0 开始,Sheet Manager 模块通过 spreadsheet.sheets 属性处理工作表管理。专用的 Sheet Manager API 替代了之前直接在 Spreadsheet 实例上可用的工作表相关方法。

加载多个工作表

要将多个工作表加载到电子表格中,请准备好包含所需工作表数量及其配置的数据,并将其作为参数传入 parse() 方法。数据应为 object 类型。查看该对象可包含的属性列表

备注

如果 multiSheets 配置选项设置为 false,则只会创建一个工作表。

添加新工作表

要向电子表格添加新工作表,请使用 sheets.add() 方法,并将新工作表的名称作为参数传入:

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

// Add a sheet with a custom name
const newSheetId = spreadsheet.sheets.add("Q4 Report");
console.log(newSheetId); // e.g. "sheet_2"

// Add a sheet with an auto-generated name
const anotherId = spreadsheet.sheets.add();

该方法返回所创建工作表的 id。

删除工作表

您可以通过 sheets.remove() 方法按 id 从电子表格中删除工作表:

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

// Remove a sheet by its id
spreadsheet.sheets.remove("sheet_2");

请注意,如果电子表格中的工作表少于 2 个,则不会删除工作表。

设置活动工作表

要在电子表格初始化后动态切换活动工作表,请使用 sheets.setActive() 方法。该方法以工作表的 id 作为参数:

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

// Switch to the second sheet
spreadsheet.sheets.setActive("sheet_2");

// Verify the switch
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" }
// ]

通过 id 获取工作表

要通过 id 获取单个工作表对象,请使用 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() 方法按 id 清除指定工作表的数据:

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

// Clear a specific sheet by id
spreadsheet.sheets.clear("sheet_1");

// Clear the currently active sheet
spreadsheet.sheets.clear();

相关示例:Spreadsheet. 清除

如果需要一次性清除整个电子表格,请使用 clear() 方法。