Использование функций книги в Excel

Функции книги в Excel с Microsoft Graph можно использовать для вызова любой функции книги с помощью следующего синтаксиса: POST /me/drive/root/workbook/functions/{function-name}. Аргументы функции предоставляются в тексте с помощью объекта JSON. Результирующее value функции и любые строки error возвращаются в объекте результата функции. Если значение error равно null, это свидетельствует об успешном выполнении функции.

Полный список поддерживаемых функций см. в разделе Класс Excel.Functions. Имена определенных параметров и типы данных см. в сигнатуре функции.

Важно!

  • Входной параметр range предоставляется с использованием объекта range вместо строки адреса range.
  • Параметр index индексируется с 1, а не с 0, как в большинстве API.

Пример: vlookup

В электронной таблице Excel функция vlookup принимает следующие аргументы:

  • lookup_value (обязательный): значение, которое требуется найти.

  • table_array (обязательный): диапазон ячеек, в которых находится значение подстановки. Помните, что значение подстановки всегда должно находиться в первом столбце диапазона, чтобы функция ВПР работала правильно. Например, если значение подстановки находится в ячейке C2, диапазон должен начинаться с C.

  • col_index_num (обязательный): номер столбца в диапазоне, который содержит возвращаемое значение. Например, если вы укажете в качестве диапазона B2:D11, B будет первым столбцом, C — вторым и т. д.

  • range_lookup (необязательно): логическое значение, указывающее, требуется ли ВПР найти приблизительное или точное совпадение. Если необходимо, чтобы функция работала в режиме поиска приблизительного совпадения, укажите значение TRUE. Если необходимо, чтобы функция возвращала точные совладения, укажите значение FALSE. Если ничего не указать, значение по умолчанию всегда будет TRUE или приблизительное совпадение.

В ячейке функция vlookup выглядит так:

=VLOOKUP(значение подстановки, диапазон, содержащий значение подстановки, номер столбца в диапазоне, содержащем возвращаемое значение, при необходимости укажите ЗНАЧЕНИЕ TRUE для приблизительного совпадения или FALSE для точного совпадения)

Дополнительные сведения см. в документации по функции VLOOKUP Excel.

Запрос

В примере ниже показано, как вызвать функцию vlookup и передать в нее эти параметры с помощью REST API для Excel.

POST https://graph.microsoft.com/beta/me/drive/root:/book1.xlsx:/workbook/functions/vlookup
content-type: Application/Json
authorization: Bearer {access-token}
workbook-session-id: {session-id}

{
    "lookupValue": "Temperature",
    "tableArray": { "Address": "Sheet1!E1:G5" },
    "colIndexNum": 2,
    "rangeLookup": false
}

Ответ

HTTP code: 200 OK
content-type: application/json;odata.metadata

{
    "@odata.context": "https://graph.microsoft.com/beta/$metadata#workbookFunctionResult",
    "@odata.type": "#microsoft.graph.workbookFunctionResult",
    "@odata.id": "/users('f6d92604-4b76-4b70-9a4c-93dfbcc054d5')/drive/root/workbook/functions/vlookup()",
    "error": null,
    "value": "28.3"
}

Пример: median

В электронной таблице Excel функция median принимает массив одного или нескольких диапазонов входных значений.

В ячейке функция median выглядит так, как показано в этом примере:

=MEDIAN(A2:A6)

Дополнительные сведения см. в документации по функции MEDIAN Excel.

Запрос

В примере ниже показано, как вызывать функцию median и один или несколько диапазонов входных значений с помощью REST API для Excel.

POST https://graph.microsoft.com/beta/me/drive/root:/book1.xlsx:/workbook/functions/median
content-type: Application/Json
authorization: Bearer {access-token}
workbook-session-id: {session-id}

{
"values" :  [
        { "address": "Sheet2!A1:A5" },
        { "address": "Sheet2!B1:B5" },
      ]
}

Отклик

HTTP code: 200 OK
content-type: application/json;odata.metadata

{
  "@odata.context": "https://graph.microsoft.com/beta/$metadata#workbookFunctionResult",
  "@odata.type": "#microsoft.graph.workbookFunctionResult",
  "@odata.id": "/users('2abcad6a-2fca-4b6e-9577-e358a757d77d')/drive/root/workbook/functions/median()",
  "error": null,
  "value": 30
}