Библиотека A4 для Node.js
Пакет a4office для Node.js открывает, правит, пересчитывает и сохраняет книги Excel, читает текст документов Word и добавляет слайды в презентации — из серверного кода на JavaScript. Внутри — ядра F1 (таблицы), A4 (документы) и P2 (презентации): ничего не компилируется при установке, не нужны ни Microsoft Office, ни LibreOffice.
Что умеет
- книги
.xlsx,.xlsm,.xlsb,.xls,.ods,.csv: открыть, записать число, текст или формулу, пересчитать, прочитать значение ячейки, сохранить; - документы
.docxи.docm: текст одной строкой кода; - презентации
.pptx: открыть, добавить слайд, узнать число слайдов, сохранить.
Пакет — модуль ES: подключается через import.
Установка
Пакет ставится с нашего сервера загрузок, а не из общего каталога npm. Ставьте два архива одной командой: основной пакет и ядра своей платформы. Например, для macOS на Apple silicon:
npm install https://dl.plantype.ru/a4office/release/node/2026.4.3/a4office-native-darwin-arm64-2026.4.3.tgz https://dl.plantype.ru/a4office/release/node/2026.4.3/a4office-2026.4.3.tgz
Для другой платформы замените первый архив:
| Платформа | Архив с ядрами |
|---|---|
| macOS, Apple silicon | a4office-native-darwin-arm64-2026.4.3.tgz |
| macOS, Intel | a4office-native-darwin-x64-2026.4.3.tgz |
| Linux x86-64 | a4office-native-linux-x64-2026.4.3.tgz |
| Linux aarch64 | a4office-native-linux-arm64-2026.4.3.tgz |
| Windows x64 | a4office-native-win32-x64-2026.4.3.tgz |
Единственная зависимость пакета — koffi — ставится из каталога npm. Каталог архивов — dl.plantype.ru/a4office/release/node/2026.4.3/.
Первый пример
Файлы для примеров: report.xlsx, contract.docx, deck.pptx — или все сразу: curl -O https://tech.bazapp.ru/samples/report.xlsx -O https://tech.bazapp.ru/samples/contract.docx -O https://tech.bazapp.ru/samples/deck.pptx (в Windows — curl.exe). Подойдут и свои файлы.
Открыть книгу, записать ячейку, пересчитать и сохранить; прочитать текст документа; добавить слайд:
import { open, text } from "a4office";
const wb = open("report.xlsx");
const sheet = wb.sheet([...wb.sheets.keys()][0]); // первый лист
sheet.set("B11", 41).set("C11", "=B11+1"); // число, текст, null или формула
wb.recalc();
console.log(sheet.get("C11")); // 42
wb.save("report-edited.xlsx");
wb.close();
console.log(text("contract.docx"));
const deck = open("deck.pptx");
deck.addSlide();
console.log(deck.slideCount);
deck.save("deck-edited.pptx");
deck.close();
open() по расширению файла возвращает книгу (Workbook) или презентацию (Presentation). save() без аргумента перезаписывает исходный файл. Ошибки — OfficeError; кончилась квота — LicenseQuotaError. Версия ядер внутри пакета — coreVersion().
Что бесплатно
| Без ключа | С ключом разработчика | |
|---|---|---|
| Документов в сутки | 30 | 10 000 |
| Срок | без срока | 90 дней с выдачи |
| Когда квота кончилась | сразу исключение LicenseQuotaError со ссылкой на этот раздел; без ожидания и без замедления | |
Квоту платят открытие и сохранение файла в любом из трёх ядер — книги, документы и презентации считаются вместе; правки внутри открытого файла, сколько бы ячеек вы ни меняли, не считаются. Чтобы получить ключ разработчика, напишите нам: вместе с ключом пришлём, как подключить его к вашей программе.
Где считается: в файле ~/.layers/a4office-state.json, а если задана переменная A4OFFICE_STATE_DIR — в этом каталоге. Ключ ищется по порядку: переменная A4OFFICE_LICENSE, файл из A4OFFICE_LICENSE_FILE, файл ~/.layers/license.jws. Ключ в последнем действует на все запуски на этой машине, и бесплатные 30 тогда не считаются; проверить бесплатный режим на такой машине — направить A4OFFICE_LICENSE_FILE на пустой файл.
Чего нет
- просмотрщика и редактора в браузере: показать документ людям — Сервер A4;
- преобразования в PDF и картинок страниц;
- документы Word в коротком API только читаются; правка — через низкоуровневый
Session; - макросы VBA не исполняются.
Показать документ людям
Библиотека создаёт и меняет файлы внутри вашей программы. Просмотрщика и редактора в браузере в ней нет: view() отвечает, где взять сервер, и ссылкой на его страницу. Показать документы людям и дать их править — задача остальных изделий A4:
- В браузере — Сервер A4. Файлы, которые создаёт ваша программа, открываются в редакторах A4, F1 и P2 (презентации) на сервере организации; правка возвращается новой версией. Сервер A4; подключение к 1С и Битрикс24.
- На компьютере — настольные редакторы. A4, F1 и P2 для Windows, macOS и Linux. Скачать.
- Из почты и учётных программ — A4 Office. Вложение или файл из 1С открывается в редакторе на компьютере и возвращается обратно. A4 Office на компьютере.
- Внутри вашего продукта. Те же редакторы, встроенные в ваше приложение, — для партнёров: мобильный SDK; напишите нам.
Скачать
| Файл | Размер | Что это |
|---|---|---|
a4office-2026.4.3.tgz | 5 067 байт | основной пакет, любая платформа |
a4office-native-darwin-arm64-2026.4.3.tgz | 46 520 986 байт | ядра для macOS, Apple silicon |
a4office-native-darwin-x64-2026.4.3.tgz | 48 237 663 байт | ядра для macOS, Intel |
a4office-native-linux-x64-2026.4.3.tgz | 47 356 630 байт | ядра для Linux x86-64 |
a4office-native-linux-arm64-2026.4.3.tgz | 44 376 638 байт | ядра для Linux aarch64 |
a4office-native-win32-x64-2026.4.3.tgz | 47 770 401 байт | ядра для Windows x64 |
SHA256SUMS | 601 байт | контрольные суммы |
Контрольные суммы
d87037b8a1c2de99e41f742efda223171359d1a29935728f49072c5b33b6983b a4office-2026.4.3.tgz
fa4e45f195e45615150e01fdd5c0652fd148586e3da834e8416f0f6c66f72a5a a4office-native-darwin-arm64-2026.4.3.tgz
2c5cb233850692905b2c3cc829b0706c95b9cbdb3d33a4d3a817c35b521ab217 a4office-native-darwin-x64-2026.4.3.tgz
78717dbe61e95f4988ccbf6bb04532cfda3c30ba5f4bbc696c690ff0e406488a a4office-native-linux-arm64-2026.4.3.tgz
4aabb57dd61ccccdc449c4e5d3c7f12bf7981891abb3827941f8dae92fca4aa8 a4office-native-linux-x64-2026.4.3.tgz
0ddfbe9889601f9f686bca55b7a49db932a8611d516d4d7f4a3e468855937ba1 a4office-native-win32-x64-2026.4.3.tgz
Проверка после скачивания:
shasum -a 256 -c SHA256SUMS