Библиотека A4 для Java
Пакет ru.a4office:a4office открывает, правит, пересчитывает и сохраняет книги Excel, читает текст документов Word и добавляет слайды в презентации — из программы на Java. Внутри — ядра F1 (таблицы), A4 (документы) и P2 (презентации): ничего не компилируется, не нужны ни Microsoft Office, ни LibreOffice. Подключается из репозитория Maven на dl.plantype.ru — для Maven и Gradle.
Что умеет
- книги
.xlsx,.xlsm,.xlsb,.xls,.ods,.csv: открыть, записать число, текст или формулу, пересчитать, прочитать значения и диапазоны, сохранить; - документы
.docx: текст одной строкой кода; - презентации
.pptx: открыть, добавить слайд, узнать число слайдов, сохранить.
Java 11 и новее. На Java 11–21 ядра подключаются через JNA, на Java 22 и новее — через стандартный Foreign Function & Memory API. Ядра для macOS (Apple silicon и Intel), Linux x86-64 и aarch64, Windows x64 лежат внутри JAR: ничего не компилируется.
Установка
Пакет ru.a4office:a4office:2026.4.3 лежит в нашем репозитории Maven на сервере загрузок: https://dl.plantype.ru/a4office/release/maven. Зависимости — JNA и Jackson — берутся из Maven Central.
Maven
<repositories>
<repository>
<id>a4office</id>
<url>https://dl.plantype.ru/a4office/release/maven</url>
</repository>
</repositories>
<dependencies>
<dependency>
<groupId>ru.a4office</groupId>
<artifactId>a4office</artifactId>
<version>2026.4.3</version>
</dependency>
</dependencies>
Gradle
repositories {
mavenCentral()
maven { url = uri("https://dl.plantype.ru/a4office/release/maven") }
}
dependencies {
implementation("ru.a4office:a4office: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 ru.a4office.sdk.Office;
import java.nio.file.Path;
try (var workbook = Office.open("report.xlsx")) {
var sheet = workbook.sheet(workbook.sheetNames().get(0)); // первый лист
sheet.set("B11", 41).set("C11", "=B11+1"); // число, текст, null или формула
workbook.recalc();
System.out.println(sheet.get("C11")); // 42.0
workbook.save(Path.of("report-edited.xlsx"));
}
System.out.println(Office.text("contract.docx"));
try (var slides = Office.openPresentation("deck.pptx")) {
slides.addSlide().save(Path.of("deck-edited.pptx"));
System.out.println(slides.slideCount());
}
Значения диапазона — sheet.read("A1:B3"). save() без аргумента перезаписывает исходный файл. Ошибки — Office.OfficeException; кончилась квота — Office.LicenseQuotaException. Версия ядер внутри пакета — Office.coreVersion().
Что бесплатно
| Без ключа | С ключом разработчика | |
|---|---|---|
| Документов в сутки | 30 | 10 000 |
| Срок | без срока | 90 дней с выдачи |
| Когда квота кончилась | сразу исключение Office.LicenseQuotaException со ссылкой на этот раздел; без ожидания и без замедления | |
Квоту платят открытие и сохранение файла в любом из трёх ядер — книги, документы и презентации считаются вместе; правки внутри открытого файла, сколько бы ячеек вы ни меняли, не считаются. Чтобы получить ключ разработчика, напишите нам: вместе с ключом пришлём, как подключить его к вашей программе.
Где считается: в файле ~/.layers/a4office-state.json, а если задана переменная A4OFFICE_STATE_DIR — в этом каталоге. Ключ ищется по порядку: переменная A4OFFICE_LICENSE, файл из A4OFFICE_LICENSE_FILE, файл ~/.layers/license.jws. Ключ в последнем действует на все запуски на этой машине, и бесплатные 30 тогда не считаются; проверить бесплатный режим на такой машине — направить A4OFFICE_LICENSE_FILE на пустой файл.
Чего нет
- просмотрщика и редактора в браузере: показать документ людям — Сервер A4;
- преобразования в PDF и картинок страниц;
- документы Word в коротком API только читаются; правка — через низкоуровневый
Office.Session; - макросы VBA не исполняются.
Показать документ людям
Библиотека создаёт и меняет файлы внутри вашей программы. Просмотрщика и редактора в браузере в ней нет: Office.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.jar | 229 153 360 байт | библиотека с ядрами пяти платформ · sha1 · md5 |
a4office-2026.4.3.pom | 3 966 байт | описание и зависимости · sha1 · md5 |
a4office-2026.4.3-sources.jar | 229 129 731 байт | исходники · sha1 · md5 |
a4office-2026.4.3-javadoc.jar | 165 053 байт | документация Javadoc · sha1 · md5 |
maven-metadata.xml | 326 байт | список версий · sha1 · md5 |
SHA256SUMS | 570 байт | контрольные суммы |
Контрольные суммы
548272f8b0d928c6619f0afe5933ef2b0ffa44ea217207665a30068c96cb59b5 ru/a4office/a4office/2026.4.3/a4office-2026.4.3.jar
e6df612a26324ac34cebd58e155020f6cc4c6a7a3c0e793670fa8e8a42b49c2f ru/a4office/a4office/2026.4.3/a4office-2026.4.3-javadoc.jar
004666719b3561ebd7cd7ca9f30a091a26f032685bea94cd9be6ba1586be3d69 ru/a4office/a4office/2026.4.3/a4office-2026.4.3.pom
acd4e51c34e0b1831b9d11b68f3c08edac867ba34cc265885a954712af534829 ru/a4office/a4office/2026.4.3/a4office-2026.4.3-sources.jar
e9e605d51749e124f8025c34ef08a61310e24c58b395ed2aa6ab6c394a670ead ru/a4office/a4office/maven-metadata.xml
Проверка после скачивания (из папки, где лежат файлы с теми же путями):
shasum -a 256 -c SHA256SUMS