Apache POI HSSF – как «приручить» Excel::Журнал СА 4.2017
www.samag.ru
     
Поиск   
              
 www.samag.ru    Web  0 товаров , сумма 0 руб.
E-mail
Пароль  
 Запомнить меня
Регистрация | Забыли пароль?
О журнале
Журнал «БИТ»
Подписка
Где купить
Авторам
Рекламодателям
Магазин
Архив номеров
Вакансии
Контакты
   

ЭКСПЕРТНАЯ СЕССИЯ 2019


  Опросы

Какие курсы вы бы выбрали для себя?  

Очные
Онлайновые
Платные
Бесплатные
Я и так все знаю

 Читать далее...

1001 и 1 книга  
28.05.2019г.
Просмотров: 1344
Комментарии: 2
Анализ вредоносных программ

 Читать далее...

28.05.2019г.
Просмотров: 1452
Комментарии: 1
Микросервисы и контейнеры Docker

 Читать далее...

28.05.2019г.
Просмотров: 1124
Комментарии: 0
Django 2 в примерах

 Читать далее...

28.05.2019г.
Просмотров: 862
Комментарии: 0
Введение в анализ алгоритмов

 Читать далее...

27.03.2019г.
Просмотров: 1453
Комментарии: 1
Arduino Uno и Raspberry Pi 3: от схемотехники к интернету вещей

 Читать далее...

Друзья сайта  

Форум системных администраторов  

sysadmins.ru

 Apache POI HSSF – как «приручить» Excel

Архив номеров / 2017 / Выпуск №4 (173) / Apache POI HSSF – как «приручить» Excel

Рубрика: Администрирование /  Генерация отчетов   | Дополнительные материалы

Сергей Ильичев СЕРГЕЙ ИЛЬИЧЕВ, ГК «Лаборатория Интеллект», г. Тула, инженер-программист, sergil68@mail.ru

Apache POI HSSF – как «приручить» Excel

Не стоит недооценивать свободные генераторы отчетов. Библиотека с открытым исходным кодом Apache POI доказывает свою состоятельность

Постановка задачи

К теме генерации отчетов время от времени приходится обращаться практически каждому программисту и системному администратору. Получив очередное техзадание сделать отчет для информационной системы предприятия именно вMicrosoft Excel и имея некоторый опыт построения отчетов с помощью технологий, описанных в [1], решено было исследовать, какой из современных генераторов отчетов (желательно бесплатный) подошел бы для решения этой задачи. При этом совершенно не хотелось лезть в поднадоевшие механизмы OLE-DDE, привязываясь к одной из операционных систем.

Использование электронных таблиц для формирования отчетов – трюк давний и вполне оправданный. Во-первых, современные динамические таблицы – мощные программные комплексы, способные на математические вычисления вплоть до аппроксимации. Во-вторых, рабочие единицы в электронных таблицах – ячейки, строки, столбцы, – и с ними легко работать алгоритмически, например, используя циклы. И напоследок: подобные программы установлены практически налюбом персональном компьютере.

В процессе поиска информации заставил «потереть руки» в предвкушении чего-то интересного один проект – Apache POI, выпущенный под лицензией Apache License. Официальный сайт проекта, в котором, кстати, может принять участие любой желающий, – [2]. Аббревиатура POI (и другие – см. ниже) на титульной странице сайта никак не расшифровывается, однако в документации [3] даются некоторые разъяснения.

Согласно информации из документации эта Java-библиотека разделена на несколько пакетов: если необходимо прочитать или записать файл Excel (.xls), то можно использовать пакет HSSF, если нужно прочитать или записать файл OOXML Excel (.xlsx), можно использовать XSSF. Комбинированный интерфейс SS позволяет легко считывать и записывать все виды файлов Excel (.xls и .xlsx). Кроме того, существует специализированная реализация SXSSF, которая позволяет работать с очень большими Excel (.xlsx) файлами в памяти с оптимизацией.

С первого взгляда возможности HSSF с лихвой покрывали потребности нашего отчета. После анализа техзадания выполнение задачи было разбито на два этапа: 1-й этап – данные из информационной системы с помощью ее инструментов должны быть выгружены в текстовый файл с символами «#» в качестве разделителей такого вида:

Поле 1#Поле 2#Поле 3#Поле 4#Поле 5#Поле 6

Поле 1#Поле 2#Поле 3#Поле 4#Поле 5#Поле 6

Поле 1#Поле 2#Поле 3#Поле 4#Поле 5#Поле 6

Затем 2-й этап – файл должен подхватиться программой на Java и после обработки вывестись пользователю на экран уже в Excel. Подобные поэтапные решения применяются в так называемой лоскутной автоматизации, описаны в [1] идовольно часто применяются в информационных системах.

Целью статьи будет описание процесса создания программы на языке программирования Java для решения задач 2-го этапа, а именно открытие текстового файла с разделителями и формирование многостраничного отчета с помощью библиотеки POI, способного открыться в Microsoft Excel. Программировать будем в JDK 6 (Linux Mint 13 LTE, версия Java – OpenJDK 1.6), сама программа, что естественно для языка программирования Java, после компиляции должна выполняться и в Linux и в Windows.

Статью целиком читайте в журнале «Системный администратор», №4 за 2017 г. на страницах 30-33.

PDF-версию данного номера можно приобрести в нашем магазине.


  1. Java-отчет с помощью OpenOffice.org Writer – http://www.learn2prog.ru/ooo-report.
  2. Сайт проекта Apache POI – https://poi.apache.org.
  3. Страница документации Apache POI – https://poi.apache.org/apidocs/index.html.
  4. Страница загрузки (download) библиотеки – https://poi.apache.org/download.html#POI-3.15.
  5. Описание API-библиотеки для работы с электронными таблицами – https://poi.apache.org/spreadsheet/how-to.html.
  6. Интерфейс Font-библиотеки, поля и методы – https://poi.apache.org/apidocs/org/apache/poi/ss/usermodel/Font.html.
  7. Устаревшие методы Apache POI – https://poi.apache.org/apidocs/deprecated-list.html.

Комментарии отсутствуют

Добавить комментарий

Комментарии могут оставлять только зарегистрированные пользователи

               Copyright © Системный администратор

Яндекс.Метрика
Tel.: (499) 277-12-41
Fax: (499) 277-12-45
E-mail: sa@samag.ru