Установка и получение значений диапазона, текста или формул с помощью 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();
});
Данные перед изменением значения ячейки
Данные после изменения значения ячейки
Задание значений для диапазона ячеек
В примере кода ниже показано, как присвоить значения ячейкам в диапазоне 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();
});
Данные перед изменением значений ячеек
Данные после изменения значений ячеек
Задание формулы для одной ячейки
В примере кода ниже показано, как задать формулу для ячейки 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();
});
Данные перед заданием формулы для ячейки
Данные после задания формулы для ячейки
Задание формул для диапазона ячеек
В примере кода ниже показано, как задать формулы для ячеек в диапазоне 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();
});
Данные перед заданием формул для ячеек
Данные после задания формул для ячеек
Получение значений, текста или формул
Эти примеры кода получают значения, текст и формулы из диапазона ячеек.
Получение значений из диапазона ячеек
Следующий пример кода получает диапазон 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 представляют собой результат вычисления формул)
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 представляют собой результат вычисления формул)
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 представляют собой результат вычисления формул)
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)"
]
]
См. также
Office Add-ins