Перейти к содержимому
FastOffice

Запросы, использованные в примере

Открыть книгу, записать текст, число и формулу, пересчитать и сохранить — разбор каждого вызова.

{
"operation": "open_workbook_subset",
"sourceUri": "file:///absolute/path/input.xlsx",
"viewport": { "top": 0, "left": 0, "rows": 20, "cols": 12 },
"requestedBackend": "native-desktop"
}

Из ответа берутся payload.subsetId и payload.activeSheet.path.

{
"operation": "apply_cell_edits",
"subsetId": "subset-...",
"edits": [
{ "sheetKey": "xl/worksheets/sheet1.xml",
"row": 0, "col": 0, "inputKind": "text", "input": "F1 API" },
{ "sheetKey": "xl/worksheets/sheet1.xml",
"row": 0, "col": 1, "inputKind": "number", "input": "21" },
{ "sheetKey": "xl/worksheets/sheet1.xml",
"row": 0, "col": 2, "inputKind": "formula", "input": "=B1*2" }
],
"expectedRevision": 0,
"viewport": { "top": 0, "left": 0, "rows": 20, "cols": 12 },
"requestedBackend": "native-desktop"
}

Три правки отправлены атомарно и создают одну запись истории.

{
"operation": "read_cell_details",
"subsetId": "subset-...",
"row": 0,
"col": 2,
"viewport": { "top": 0, "left": 0, "rows": 20, "cols": 12 },
"requestedBackend": "native-desktop"
}

Искомое значение находится в payload.cell.displayValue; исходный текст формулы — в payload.cell.editText.

{
"operation": "replay_workbook_history",
"subsetId": "subset-...",
"direction": "undo",
"viewport": { "top": 0, "left": 0, "rows": 20, "cols": 12 },
"requestedBackend": "native-desktop"
}

Для повтора отправьте тот же запрос с direction = redo.

{
"operation": "save_workbook_subset",
"subsetId": "subset-...",
"destinationUri": "file:///absolute/path/result.xlsx",
"preserveCachedValues": true,
"requestedBackend": "native-desktop"
}

Ассистент документации

Ответ собран из документации и может быть неточным — сверяйтесь с источниками.