Библиотека A4 для Python
Пакет a4office открывает, правит, пересчитывает и сохраняет книги Excel, читает документы Word и добавляет слайды в презентации — прямо из программы на Python. Внутри пакета — ядра F1 (таблицы), A4 (документы) и P2 (презентации): ничего не компилируется при установке, не нужны ни Microsoft Office, ни LibreOffice. Файлы не покидают компьютер.
Что умеет
- книги
.xlsx,.xlsm,.xlsb,.xls,.ods,.csv: открыть, записать число, текст или формулу, пересчитать, прочитать значения и диапазоны, сохранить; - книга с макросами сохраняется целиком: проект VBA остаётся байт в байт прежним;
- документы
.docx: текст одной строкой кода; - презентации
.pptx: открыть, добавить слайд, сохранить; - местный сервер MCP для Claude Desktop и Cursor — только файлы на вашем компьютере.
Установка
pip install a4office --find-links "https://dl.plantype.ru/a4office/release/2026.4.3/?noscript" --no-index
Пакет ставится с нашего сервера загрузок, а не из общего каталога PyPI. Каталог колёс — dl.plantype.ru/a4office/release/2026.4.3/; pip сам выберет колесо своей платформы. У пакета нет зависимостей, поэтому --no-index безопасен: в другие каталоги pip не обращается.
Колёса: macOS 11+ (Apple silicon и Intel), Linux x86-64 и aarch64 (glibc 2.28 и новее), Windows x64; Python 3.10 и новее. Каждое колесо меньше 48 МБ.
Первый результат за пять строк
Файлы для примеров: report.xlsm, budget.xlsm, model.xlsx, contract.docx, deck.pptx — или все сразу: curl -O https://tech.bazapp.ru/samples/report.xlsm -O https://tech.bazapp.ru/samples/budget.xlsm -O https://tech.bazapp.ru/samples/model.xlsx -O https://tech.bazapp.ru/samples/contract.docx -O https://tech.bazapp.ru/samples/deck.pptx (в Windows — curl.exe). Подойдут и свои файлы.
import a4office
wb = a4office.open("report.xlsm")
wb["Движение денег"]["B7"] = 42
wb.save("report-edited.xlsm")
Три примера
1. Изменить ячейку в книге с макросами
wb = a4office.open("budget.xlsm")
print(wb.sheet_names) # ('Движение денег', 'Итоги')
wb["Движение денег"]["B7"] = 42 # число, текст, None или "=B5*2"
wb.save("budget-edited.xlsm") # vbaProject.bin остаётся прежним
2. Пересчитать и прочитать результат
wb = a4office.open("model.xlsx")
лист = wb["Итоги"]
лист["A1"] = 1200
лист["A2"] = "=A1*1.2"
wb.recalc()
print(лист["A2"]) # 1440
print(лист.read("A1:B3")) # значения диапазона
wb.save("model-edited.xlsx")
3. Текст документа и слайд в презентации
print(a4office.text("contract.docx"))
deck = a4office.open("deck.pptx")
deck.add_slide()
deck.save("deck-edited.pptx")
Claude Desktop и Cursor
В пакете есть местный сервер MCP. Он читает файлы только в домашнем каталоге (другие папки — переменная A4OFFICE_MCP_ROOTS) и никогда не перезаписывает исходный файл: правка возвращается копией.
{ "mcpServers": {
"a4office": { "command": "/полный/путь/к/venv/bin/a4office-mcp" }
} }
Настольные программы не читают PATH оболочки: полный путь даст which a4office-mcp (в Windows — where a4office-mcp). В Claude Desktop: Settings → Developer → Edit Config, затем перезапуск. Инструменты: open_workbook, read_range, write_cells, recalc, save_copy, document_text.
Что бесплатно
| Без ключа | С ключом разработчика | |
|---|---|---|
| Документов в сутки | 30 | 10 000 |
| Срок | без срока | 90 дней с выдачи |
| Когда квота кончилась | сразу ошибка LicenseQuotaError со ссылкой на этот раздел; без ожидания и без замедления | |
Квоту платят открытие и сохранение файла в любом из трёх ядер — книги, документы и презентации считаются вместе; правки внутри открытого файла, сколько бы ячеек вы ни меняли, не считаются. Чтобы получить ключ разработчика, напишите нам. Ключ положите в переменную A4OFFICE_LICENSE или путь к файлу ключа — в A4OFFICE_LICENSE_FILE.
Где считается: в файле ~/.layers/a4office-state.json, а если задана переменная A4OFFICE_STATE_DIR — в этом каталоге. Ключ ищется по порядку: переменная A4OFFICE_LICENSE, файл из A4OFFICE_LICENSE_FILE, файл ~/.layers/license.jws. Ключ в последнем действует на все запуски на этой машине, и бесплатные 30 тогда не считаются; проверить бесплатный режим на такой машине — направить A4OFFICE_LICENSE_FILE на пустой файл.
Чего нет
- макросы VBA не исполняются — только сохраняются;
- преобразования в PDF и картинок страниц в этом выпуске нет:
convert()иpreview()отвечают понятной ошибкой и не создают файла; - документы Word в коротком API только читаются; правка — через низкоуровневый
Session; - шрифты в пакет не встроены: ядро A4 берёт системные.
Когда документы нужно показать людям
Библиотека создаёт и меняет файлы внутри вашей программы. Показать их людям и дать править — задача остальных изделий A4:
- В браузере — Сервер A4. Файлы, которые создаёт ваша программа, открываются в редакторах A4, F1 и P2 (презентации) на сервере организации; правка возвращается новой версией. Сервер A4; подключение к 1С и Битрикс24.
- На компьютере — настольные редакторы. A4, F1 и P2 для Windows, macOS и Linux. Скачать.
- Из почты и учётных программ — A4 Office. Вложение или файл из 1С открывается в редакторе на компьютере и возвращается обратно. A4 Office на компьютере.
- Внутри вашего продукта. Те же редакторы, встроенные в ваше приложение, — для партнёров: мобильный SDK; напишите нам.
Скачать
| Файл | Размер | Платформа |
|---|---|---|
a4office-2026.4.3-py3-none-macosx_11_0_arm64.whl | 42 762 471 байт | macOS 11+, Apple silicon |
a4office-2026.4.3-py3-none-macosx_11_0_x86_64.whl | 45 649 290 байт | macOS 11+, Intel |
a4office-2026.4.3-py3-none-manylinux_2_28_x86_64.whl | 47 910 328 байт | Linux x86-64, glibc 2.28+ |
a4office-2026.4.3-py3-none-manylinux_2_28_aarch64.whl | 44 099 782 байт | Linux aarch64, glibc 2.28+ |
a4office-2026.4.3-py3-none-win_amd64.whl | 47 799 626 байт | Windows x64 |
SHA256SUMS | 577 байт | контрольные суммы колёс |
Контрольные суммы
6d638169cfefb5ee28bf4c8698fd12b08e23541339cf82af66c03b6dec5eee4c a4office-2026.4.3-py3-none-manylinux_2_28_aarch64.whl
684742b1b50b57774a9c73da5493111f3b8fd412c67e15b0253c447529bbaca4 a4office-2026.4.3-py3-none-manylinux_2_28_x86_64.whl
b3074cb3c1a4949ddf030d037ea288bc6591c508c7804d2f5e3d3b1a5f983092 a4office-2026.4.3-py3-none-macosx_11_0_arm64.whl
16d7b113668fa0e439ff0171e5fa2e99af9ab2313cb92f2e84c85825ccfba3f2 a4office-2026.4.3-py3-none-macosx_11_0_x86_64.whl
7eaee58e6e1be4473d713d6a2db2d1d0262bfda5499a8b6a001327d25f4034e3 a4office-2026.4.3-py3-none-win_amd64.whl
Проверка после скачивания:
shasum -a 256 -c SHA256SUMS