Быстрый старт: первый проект
Подготовить каталог, положить книгу и скрипт, запустить пример и увидеть результат.
Подготовить первый проект
Заголовок раздела «Подготовить первый проект»Понадобится Node.js 18+ и любая XLSX-книга. В готовом комплекте на рабочем столе уже лежат input.xlsx и проверенный f1-api-first-run.mjs.
Создать каталог
Заголовок раздела «Создать каталог»mkdir -p ~/Desktop/F1-API-First-Runcd ~/Desktop/F1-API-First-RunПоложить исходную книгу
Заголовок раздела «Положить исходную книгу»Скопируйте существующую книгу и назовите её input.xlsx. Скрипт не изменяет исходный файл: он пишет новый result.xlsx.
cp "/путь/к/вашей/книге.xlsx" ./input.xlsxls -lh input.xlsxПоложить скрипт
Заголовок раздела «Положить скрипт»Используйте файл f1-api-first-run.mjs из комплекта рядом с этим документом. Полный текст также приведён в приложении A.
Запустить пример
Заголовок раздела «Запустить пример»cd ~/Desktop/F1-API-First-Runnode ./f1-api-first-run.mjsСкрипт выполняет семь шагов:
-
запускает compute_contract_cli –session и получает handshake;
-
открывает input.xlsx через open_workbook_subset;
-
получает subsetId и sheetKey из ответа Rust;
-
пишет A1 = F1 API, B1 = 21, C1 = формула =B1*2;
-
читает C1 и получает displayValue 42;
-
выполняет Undo и Redo через центральную историю;
-
сохраняет result.xlsx, запускает новый процесс и проверяет C1 после холодного открытия.
Ожидаемый вывод
Заголовок раздела «Ожидаемый вывод»1. Сессия: compute_contract_cli_session_ready2. Открыта книга: Data subset-...3. Изменения применены, revision: 14. C1 после формулы: ... displayValue: '42' ...5. Undo/Redo: выполнены6. Сохранено: .../result.xlsx7. Повторное открытие, C1: ... displayValue: '42' ...Увидеть результат
Заголовок раздела «Увидеть результат»open -a "$HOME/Applications/F1-2026.3.18.96/F1.app" \ "$HOME/Desktop/F1-API-First-Run/result.xlsx"