Вся документация

Библиотека 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().

Что бесплатно

Без ключаС ключом разработчика
Документов в сутки3010 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; напишите нам.

Скачать

Пакет ru.a4office:a4officeверсия 2026.4.3 · Java 11+ · пять платформ
Скачать JAR
ФайлРазмерЧто это
a4office-2026.4.3.jar229 153 360 байтбиблиотека с ядрами пяти платформ · sha1 · md5
a4office-2026.4.3.pom3 966 байтописание и зависимости · sha1 · md5
a4office-2026.4.3-sources.jar229 129 731 байтисходники · sha1 · md5
a4office-2026.4.3-javadoc.jar165 053 байтдокументация Javadoc · sha1 · md5
maven-metadata.xml326 байтсписок версий · sha1 · md5
SHA256SUMS570 байтконтрольные суммы

Контрольные суммы

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