Установка и получение значений диапазона, текста или формул с помощью API JavaScript для Excel

В этой статье приведены примеры кода, которые задают и получают значения диапазона, текст или формулы с помощью API JavaScript для Excel. Полный список свойств и методов, поддерживаемых объектом, см. в Rangeразделе Класс Excel.Range.

Примечание.

В API JavaScript для Excel нет объекта или класса Cell. Вместо этого API JavaScript для Excel определяет все ячейки Excel как объекты Range. Отдельные ячейки в пользовательском интерфейсе Excel преобразуются в объект Range с одной ячейкой в API JavaScript для Excel. Один объект Range также может содержать несколько смежных ячеек. Дополнительные сведения см. в статье Работа с ячейками с использованием API JavaScript для Excel.

Задание значений или формул

В следующих примерах кода задаются значения и формулы для одной ячейки или диапазона ячеек.

Задание значения для одной ячейки

В примере кода ниже показано, как присвоить ячейке 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)"
    ]
]

См. также