У цій статті ми продовжимо знайомство з java бібліотекою Apache POI, а саме навчимося створювати документи пакету MS Word в сучасному форматі .docx.
Хто не знайомий з бібліотекою Apache POI, почитайте цю статтю (короткий опис і налаштування бібліотеки в Java проект). За допомогою цієї бібліотеки ми вже створювали Excel файл. редагували його і просто зчитували дані з xls-файлу. Сьогодні настав час потренуватися на документах Word.
Сьогодні ми створимо новий docx файл з колонтитулами і якимось вмістом. Давайте ознайомимося з невеликою теорією і далі перейдемо до прикладу створення такого файлу.
Для роботи з сучасним форматом документа MS Word, нам знадобиться бібліотека Apache POI версії 3.11 з артефактом poi-ooxml. Зверніть увагу, що шаблони файлів пакета MS Office постійно оновлюються і допрацьовуються, а сама Apache POI переробляється, тому працездатність наведеного в статті коду в нових версіях не гарантовано.
Підключіть наступну залежність в свій maven проект:
Створення документа Word (.docx) за допомогою Apache POI. теорія
В описі ми вказали, що будемо створювати документ з колонтитулами, тому давайте ознайомимося зі спеціальними класами, які дозволять це зробити.
Apache POI надає класи XWPFHeaderFooterPolicy і XWPFHeaderFooterPolicy для роботи з колонтитулами. У кожному з цих класів є методи створення createHeader () і createFooter (). Для роботи з вмістом документа є спеціальні класи XWPFParagraph and XWPFRun API.
Хід створення docx документа буде наступний:
- З оздаем об'єкт XWPFDocument - для створення моделі самого docx-документа.
- Створюємо екземпляр класу XWPFHeaderFooterPolicy для доступу до колонтитулів.
- Створюємо екземпляри CTP для верхнього і нижнього колонтитулів
- Створюємо класи-оболонки XWPFParagraph для кожного заголовка і тіла Word документа.
- Встановлюємо отримані оболонки в модель XWPFDocument і зберігаємо модель в файл з розширенням docx.
Створення документа Word в форматі docx за допомогою Apache POI. приклад
А тепер реалізуємо наш алгоритм в коді: