www.samag.ru
     
Поиск   
              
 www.samag.ru    Web  0 товаров , сумма 0 руб.
E-mail
Пароль  
 Запомнить меня
Регистрация | Забыли пароль?
Журнал "Системный администратор"
Журнал «БИТ»
Подписка
Архив номеров
Где купить
Авторам
Рекламодателям
Контакты
   

  Опросы
  Статьи

Автоматизация  

Автоматизируем рутину: что реально работает?

Многие сисадмины автоматизировали что-то за последний год. Но далеко не все остались

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

Защита ИТ-системы  

Практическая защита: что вы внедрили и что мешает?

Какие меры безопасности реально внедрить в реальных условиях – и что не

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

Вопрос-ответ  

Обеспечиваем безопасную эксплуатацию базы данных

Что для вас чаще всего является причиной инцидентов с БД? Как вы

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

Книжная полка  

От «безопасного» Linux до Контролируемого взлома

Издательство «БХВ» продолжает радовать читателей интересными новинками и в наступившем году. Вы можете

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

1001 и 1 книга  
19.03.2018г.
Просмотров: 11912
Комментарии: 0
Машинное обучение с использованием библиотеки Н2О

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

12.03.2018г.
Просмотров: 12054
Комментарии: 0
Особенности киберпреступлений в России: инструменты нападения и защита информации

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

12.03.2018г.
Просмотров: 9511
Комментарии: 0
Глубокое обучение с точки зрения практика

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

12.03.2018г.
Просмотров: 5482
Комментарии: 0
Изучаем pandas

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

12.03.2018г.
Просмотров: 6338
Комментарии: 0
Программирование на языке Rust (Цветное издание)

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

19.12.2017г.
Просмотров: 6206
Комментарии: 0
Глубокое обучение

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

19.12.2017г.
Просмотров: 9077
Комментарии: 0
Анализ социальных медиа на Python

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

19.12.2017г.
Просмотров: 5652
Комментарии: 0
Основы блокчейна

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

19.12.2017г.
Просмотров: 5866
Комментарии: 0
Java 9. Полный обзор нововведений

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

16.02.2017г.
Просмотров: 10029
Комментарии: 0
Опоздавших не бывает, или книга о стеке

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

17.05.2016г.
Просмотров: 13431
Комментарии: 0
Теория вычислений для программистов

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

30.03.2015г.
Просмотров: 14928
Комментарии: 0
От математики к обобщенному программированию

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

18.02.2014г.
Просмотров: 16676
Комментарии: 0
Рецензия на книгу «Читаем Тьюринга»

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

13.02.2014г.
Просмотров: 11511
Комментарии: 0
Читайте, размышляйте, действуйте

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

12.02.2014г.
Просмотров: 9512
Комментарии: 0
Рисуем наши мысли

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

10.02.2014г.
Просмотров: 7764
Комментарии: 4
Страна в цифрах

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

18.12.2013г.
Просмотров: 6901
Комментарии: 0
Большие данные меняют нашу жизнь

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

18.12.2013г.
Просмотров: 5748
Комментарии: 0
Компьютерные технологии – корень зла для точки роста

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

04.12.2013г.
Просмотров: 5381
Комментарии: 0
Паутина в облаках

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

03.12.2013г.
Просмотров: 5718
Комментарии: 1
Рецензия на книгу «MongoDB в действии»

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

Друзья сайта  

 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-45
E-mail: sa@samag.ru