Запросы, использованные в примере
Открыть книгу, записать текст, число и формулу, пересчитать и сохранить — разбор каждого вызова.
Открыть книгу
Заголовок раздела «Открыть книгу»{ "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.
Undo / Redo
Заголовок раздела «Undo / Redo»{ "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"}