Java і OpenOffice Calc

Роботу з OpenOffice Calc з Java розглянемо на прикладі NetBeans.

Для чого працювати з Calc з Java? Open Office Calc грає роль редактора звітів.

Завантажити OpenOffice безкоштовно можна з сайту http://download.openoffice.org/index.html.

NetBeans + Calc

Щоб працювати з NetBeans з OpenOffice Calc треба повідомити системі про існування Open Office. Як це зробити дивіться у статті Java + OpenOffice.

Простий приклад

Зробимо додаток, яке буде формувати звіт OpenOffice Calc і виводити його на екран.

Завантажте та збережіть на диску файл з ім'ям SBP_Calc_Report.ods. Java OpenOffice Calc

У цьому документі ми сформуємо наш звіт.

В NetBeans створюємо новий проект, вибираємо категорію OpenOffice.org, а в ній OpenOffice.org Client Application. Ім'я програми SBPApplication, отримуємо: Java OpenOffice Calc

Створимо в пакеті com.example новий клас SBPReport і змінимо створений майстром код класу SBPApplication так:

Основна робота у нас буде проводитися в класі SBPReport, їм і займемося. Змінимо код класу SBPReport так:

Пояснення. Для створення документа треба отримати сервіс Desktop з сервіс-менеджера. Об'єкт desktop працює з усіма документами в OpenOffice. Документи в офісі часто звуть компонентами, т. к. вони підтримують інтерфейс XComponent. Desktop може створити або завантажити існуючий документ (компонент). Для цього у нього є інтерфейс XComponentLoader з єдиним методом для створення або завантаження існуючого документа у кадр за його адресою.

Для завантаження нашого файлу SBP_Calc_Report.ods додаємо:

Тут component - це наш документ SBP_Calc_Report.ods, інша назва документа - компонент. А componentInterface - це інтерфейс нашого документа. Тепер можна переходити до формування звіту для цього доповнимо клас SBPReport:

Тут sheetContainer - це набір аркушів нашого документа; sheet - це перший лист, з яким ми і працюємо; sheetInterface - це інтерфейс першого аркуша, до методів якого будемо звертатися.

Інтерфейс XSimpleText дозволяє встановлювати рядок в клітинку. Для установки числа в клітинку використовуємо метод setValue. Встановимо формулу в комірку так: cell.setFormula("=sum(F7:F9)").

Коли будете закривати файл SBP_Calc_Report.ods не зберігайте його.

Отже, отримуємо: Java Calc

такий результат.