使用 Excel JavaScript API 添加复选框

本文提供了使用 Excel JavaScript API 在某个区域中添加、编辑和删除复选框的代码示例。 有关对象支持的属性和方法 Range 的完整列表,请参阅 Excel.Range 类

若要使用复选框,请确保范围包含布尔值,如 TRUEFALSE。 使用 Excel JavaScript API 只能将布尔值替换为复选框。

以下屏幕截图显示了表中复选框的示例。 下表列出了各种项,复选框指示项目是否为水果类型。

第二列中带有复选框的表。

注意

若要在完整示例中试用本文中的代码片段,请在 Excel 中打开Script Lab,然后选择示例库中的复选框

添加复选框

若要向范围添加复选框,请使用 Range.control 属性访问类型 CellControl ,并将枚举值设置为 CellControlTypecheckbox。 只有布尔值(如 TRUEFALSE)在范围内显示为复选框。 以下代码示例演示如何将复选框添加到名为 FruitTable 的表的“分析”列中。

await Excel.run(async (context) => {
    // This code sample shows how to add checkboxes to a table.
    const sheet = context.workbook.worksheets.getActiveWorksheet();

    // Get the "Analysis" column in the table, without the header.
    const range = sheet.tables.getItem("FruitTable").columns.getItem("Analysis").getDataBodyRange();

    // Change the Boolean values in the range to checkboxes.
    range.control = {
      type: Excel.CellControlType.checkbox
    };
    await context.sync();
});

更改复选框的值

若要使用 Excel JavaScript API 选中或清除复选框,请更改该单元格中的布尔值。 使用 Range.values 更改单元格的值。 下面的代码示例演示如何将单元格的值设置为 TRUE。 请注意,如果单元格尚未显示复选框,则代码示例只会更改单元格的布尔值。

await Excel.run(async (context) => {
    // This code sample shows how to change the value of cell B3.
    const sheet = context.workbook.worksheets.getActiveWorksheet();
    const range = sheet.getRange("B3");

    range.values = [["TRUE"]];
    await context.sync();
});

删除复选框

若要从范围中删除复选框并将值返回到简单布尔值,请使用 Range.control 属性访问类型 CellControl ,并将枚举值设置为 CellControlTypeempty。 以下代码示例演示如何从名为 FruitTable 的表的“分析”列中删除复选框。

await Excel.run(async (context) => {
    // This code sample shows how to remove checkboxes from a table.
    const sheet = context.workbook.worksheets.getActiveWorksheet();

    // Get the "Analysis" column in the table, without the header.
    const range = sheet.tables.getItem("FruitTable").columns.getItem("Analysis").getDataBodyRange();

    // Change the checkboxes to Boolean values.
    range.control = {
      type: Excel.CellControlType.empty
    };
    await context.sync();
});

注意

若要从区域中删除所有内容,请使用 Range.clearOrResetContents 方法。

另请参阅