使用 Excel JavaScript API 设置和获取范围值、文本或公式

本文提供了使用 Excel JavaScript API 设置和获取范围值、文本或公式的代码示例。 有关对象支持的属性和方法 Range 的完整列表,请参阅 Excel.Range 类

注意

The Excel JavaScript API 没有“Cell”对象或类。 相反,Excel JavaScript API 将所有 Excel 单元格定义为 Range 对象。 Excel UI 中的单个单元格转换为 Excel JavaScript API 中包含一个单元格的 Range 对象。 单个 Range 对象也可以包含多个连续的单元格。 若要了解详细信息,请参阅使用 Excel JavaScript API 处理单元格

设置值或公式

以下代码示例为单个单元格或单元格区域设置值和公式。

设置单个单元格的值

下面的代码示例将单元格 C3 的值设置为“5”,然后设置适合数据的最佳列宽。

await Excel.run(async (context) => {
    let sheet = context.workbook.worksheets.getItem("Sample");

    let range = sheet.getRange("C3");
    range.values = [[ 5 ]];
    range.format.autofitColumns();

    await context.sync();
});

更新单元格值之前的数据

更新单元格值之前 Excel 中的数据。

更新单元格值之后的数据

更新单元格值后 Excel 中的数据。

设置多个单元格的值

下面的代码示例为区域 B5:D5 中的单元格设置值,然后设置适合数据的最佳列宽。

await Excel.run(async (context) => {
    let sheet = context.workbook.worksheets.getItem("Sample");

    let data = [
        ["Potato Chips", 10, 1.80],
    ];

    let range = sheet.getRange("B5:D5");
    range.values = data;
    range.format.autofitColumns();

    await context.sync();
});

更新多个单元格值之前的数据

更新单元格值之前 Excel 中的数据。

更新多个单元格值之后的数据

更新单元格值后 Excel 中的数据。

设置单个单元格的公式

下面的代码示例为单元格 E3 设置公式,然后设置适合数据的最佳列宽。

await Excel.run(async (context) => {
    let sheet = context.workbook.worksheets.getItem("Sample");

    let range = sheet.getRange("E3");
    range.formulas = [[ "=C3 * D3" ]];
    range.format.autofitColumns();

    await context.sync();
});

设置单元格公式之前的数据

设置单元格公式之前 Excel 中的数据。

设置单元格公式之后的数据

设置单元格公式后 Excel 中的数据。

设置多个单元格的公式

下面的代码示例为区域 E2:E6 中的单元格设置公式,然后设置适合数据的最佳列宽。

await Excel.run(async (context) => {
    let sheet = context.workbook.worksheets.getItem("Sample");

    let data = [
        ["=C3 * D3"],
        ["=C4 * D4"],
        ["=C5 * D5"],
        ["=SUM(E3:E5)"]
    ];

    let range = sheet.getRange("E3:E6");
    range.formulas = data;
    range.format.autofitColumns();

    await context.sync();
});

设置多个单元格公式之前的数据

设置单元格公式之前 Excel 中的数据。

设置多个单元格公式之后的数据

设置单元格公式后 Excel 中的数据。

获取值、文本或公式

这些代码示例从单元格区域获取值、文本和公式。

从多个单元格获取值

下面的代码示例获取范围 B2:E6,加载其 values 属性,并将值写入控制台。 values区域的 属性指定单元格包含的原始值。 即使区域中的某些单元格包含公式,该区域 values 的 属性也会指定这些单元格的原始值,而不是任何公式。

await Excel.run(async (context) => {
    let sheet = context.workbook.worksheets.getItem("Sample");

    let range = sheet.getRange("B2:E6");
    range.load("values");
    await context.sync();

    console.log(JSON.stringify(range.values, null, 4));
});

区域中的数据(E 列中的值为公式的结果)

设置单元格公式后 Excel 中的数据。

range.values(通过上面的代码示例记录到控制台)

[
    [
        "Product",
        "Qty",
        "Unit Price",
        "Total Price"
    ],
    [
        "Almonds",
        2,
        7.5,
        15
    ],
    [
        "Coffee",
        1,
        34.5,
        34.5
    ],
    [
        "Chocolate",
        5,
        9.56,
        47.8
    ],
    [
        "",
        "",
        "",
        97.3
    ]
]

从多个单元格获取文本

下面的代码示例获取范围 B2:E6,加载其 text 属性,并将其写入控制台。 区域的 text 属性指定区域中单元格的显示值。 即使区域中的某些单元格包含公式,该区域 text 的 属性也会指定这些单元格的显示值,而不是任何公式。

await Excel.run(async (context) => {
    let sheet = context.workbook.worksheets.getItem("Sample");

    let range = sheet.getRange("B2:E6");
    range.load("text");
    await context.sync();

    console.log(JSON.stringify(range.text, null, 4));
});

区域中的数据(E 列中的值为公式的结果)

设置单元格公式后 Excel 中的数据。

range.text(通过上面的代码示例记录到控制台)

[
    [
        "Product",
        "Qty",
        "Unit Price",
        "Total Price"
    ],
    [
        "Almonds",
        "2",
        "7.5",
        "15"
    ],
    [
        "Coffee",
        "1",
        "34.5",
        "34.5"
    ],
    [
        "Chocolate",
        "5",
        "9.56",
        "47.8"
    ],
    [
        "",
        "",
        "",
        "97.3"
    ]
]

从多个单元格获取公式

下面的代码示例获取范围 B2:E6,加载其 formulas 属性,并将其写入控制台。 formulas区域的 属性指定包含公式的区域单元格的公式,以及不包含公式的区域单元格的原始值。

await Excel.run(async (context) => {
    let sheet = context.workbook.worksheets.getItem("Sample");

    let range = sheet.getRange("B2:E6");
    range.load("formulas");
    await context.sync();

    console.log(JSON.stringify(range.formulas, null, 4));
});

区域中的数据(E 列中的值为公式的结果)

设置单元格公式后 Excel 中的数据。

range.formulas(通过上面的代码示例记录到控制台)

[
    [
        "Product",
        "Qty",
        "Unit Price",
        "Total Price"
    ],
    [
        "Almonds",
        2,
        7.5,
        "=C3 * D3"
    ],
    [
        "Coffee",
        1,
        34.5,
        "=C4 * D4"
    ],
    [
        "Chocolate",
        5,
        9.56,
        "=C5 * D5"
    ],
    [
        "",
        "",
        "",
        "=SUM(E3:E5)"
    ]
]

另请参阅