Java + 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

В этом документе мы сформируем наш отчёт.

В NetBeans создаём новый проект, выбираем категорию OpenOffice.org, а в ней OpenOffice.org Client Application. Имя приложения SBPApplication, получаем: Java

Создадим в пакете 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

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