Учебники

Apache POI — Краткое руководство

Apache POI — Обзор

Часто для создания отчетов в формате файлов Microsoft Excel требуется программное приложение. Иногда даже ожидается, что приложение получит файлы Excel в качестве входных данных. Например, приложение, разработанное для финансового отдела компании, должно будет генерировать все свои результаты в Excel.

Любой программист на Java, желающий создавать файлы MS Office в качестве выходных данных, должен использовать для этого предопределенный API только для чтения.

Что такое Apache POI?

Apache POI — это популярный API, который позволяет программистам создавать, изменять и отображать файлы MS Office с помощью программ Java. Это библиотека с открытым исходным кодом, разработанная и распространяемая Apache Software Foundation для разработки или изменения файлов Microsoft Office с использованием программы Java. Он содержит классы и методы для декодирования вводимых пользователем данных или файла в документы MS Office.

Компоненты Apache POI

Apache POI содержит классы и методы для работы со всеми составными документами OLE2 MS Office. Список компонентов этого API приведен ниже.

  • POIFS (Файловая система реализации плохой обфускации ) — этот компонент является основным фактором всех других элементов POI. Он используется для явного чтения разных файлов.

  • HSSF (ужасный формат электронной таблицы) — используется для чтения и записи в формате xls файлов MS-Excel.

  • XSSF (XML Spreadsheet Format) — используется для формата файлов xlsx MS-Excel.

  • HPSF (формат набора ужасных свойств) — используется для извлечения наборов свойств из файлов MS-Office.

  • HWPF (формат ужасного текстового процессора) — используется для чтения и записи файлов расширений doc MS-Word.

  • XWPF (XML-формат текстового процессора) — используется для чтения и записи файлов расширения docx в MS-Word.

  • HSLF (ужасный формат макета слайда) — используется для чтения, создания и редактирования презентаций PowerPoint.

  • HDGF (формат Horrible DiaGram) — содержит классы и методы для двоичных файлов MS-Visio .

  • HPBF (формат Horrible PuBlisher) — используется для чтения и записи файлов MS-Publisher .

POIFS (Файловая система реализации плохой обфускации ) — этот компонент является основным фактором всех других элементов POI. Он используется для явного чтения разных файлов.

HSSF (ужасный формат электронной таблицы) — используется для чтения и записи в формате xls файлов MS-Excel.

XSSF (XML Spreadsheet Format) — используется для формата файлов xlsx MS-Excel.

HPSF (формат набора ужасных свойств) — используется для извлечения наборов свойств из файлов MS-Office.

HWPF (формат ужасного текстового процессора) — используется для чтения и записи файлов расширений doc MS-Word.

XWPF (XML-формат текстового процессора) — используется для чтения и записи файлов расширения docx в MS-Word.

HSLF (ужасный формат макета слайда) — используется для чтения, создания и редактирования презентаций PowerPoint.

HDGF (формат Horrible DiaGram) — содержит классы и методы для двоичных файлов MS-Visio .

HPBF (формат Horrible PuBlisher) — используется для чтения и записи файлов MS-Publisher .

Этот учебник проведет вас через процесс работы с файлами Excel с использованием Java. Поэтому обсуждение ограничивается компонентами HSSF и XSSF.

Примечание. Более старые версии POI поддерживают двоичные форматы файлов, такие как doc, xls, ppt и т. Д. Версия 3.5 и выше, POI поддерживает форматы файлов OOXML MS-Office, такие как docx, xlsx, pptx и т. Д.

Как и в Apache POI, существуют другие библиотеки, предоставляемые различными поставщиками для генерации файлов Excel. К ним относятся ячейки Aspose для Java от Aspose, JXL от Commons Libraries и JExcel от Team Dev.

Apache POI — API Java Excel

В этой главе рассказывается о некоторых разновидностях Java Excel API и их функциях. Есть много поставщиков, которые предоставляют API, связанные с Java Excel; некоторые из них рассматриваются в этой главе.

Aspose Cells для Java

Aspose Cells для Java — это лицензированный API Java Excel, разработанный и распространяемый поставщиком Aspose. Последняя версия этого API — 8.1.2, выпущенная в июле 2014 года. Это богатый и сложный API (комбинация простых классов Java и классов AWT) для разработки компонента Excel, который может читать, писать и манипулировать электронными таблицами.

Общие применения этого API следующие:

  • Отчеты Excel, создавать динамические отчеты Excel
  • Высококачественный рендеринг и печать Excel
  • Импорт и экспорт данных из таблиц Excel
  • Создавать, редактировать и конвертировать электронные таблицы

JXL

JXL — это сторонний фреймворк, разработанный для Selenium, который поддерживает автоматизацию на основе данных в веб-браузерах (автоматическое обновление данных в веб-браузерах). Однако он также используется в качестве общей библиотеки поддержки для API JExcel, поскольку он обладает базовыми функциями для создания, чтения и записи электронных таблиц.

Основные функции заключаются в следующем —

  • Генерация файлов Excel
  • Импорт данных из рабочих книг и электронных таблиц
  • Получить общее количество строк и столбцов

Примечание. JXL поддерживает только формат файла .xls и не может обрабатывать большие объемы данных.

JExcel

JExcel — это чисто лицензированный API, предоставляемый Team Dev. Используя это, программисты могут легко читать, писать, отображать и изменять книги Excel в форматах .xls и .xlsx . Этот API может быть легко встроен в Java Swing и AWT. Последняя версия этого API — Jexcel-2.6.12, выпущенная в 2009 году.

Основные характеристики заключаются в следующем —

  • Автоматизировать приложение Excel, рабочие тетради, электронные таблицы и т. Д.
  • Встраивать книги в приложение Java Swing как обычный компонент Swing
  • Добавьте слушателей событий в рабочие книги и таблицы
  • Добавьте обработчики событий, чтобы обрабатывать поведение рабочей книги и электронных таблиц
  • Добавить нативных пиров для разработки пользовательских функций

Apache POI

Apache POI — это библиотека с открытым исходным кодом, предоставленная Apache Software Foundation. Большинство разработчиков малых и средних приложений сильно зависят от Apache POI (HSSF + XSSF). Он поддерживает все основные функции библиотек Excel; однако рендеринг и извлечение текста являются его основными характеристиками.

Круг

Apache POI — Окружающая среда

В этой главе рассказывается о настройке Apache POI в системах на базе Windows и Linux. Apache POI можно легко установить и интегрировать в текущую среду Java, выполнив несколько простых шагов без каких-либо сложных процедур настройки. Администрация пользователя требуется при установке.

Системные Требования

JDK Java SE 2 JDK 1.5 или выше
объем памяти 1 ГБ ОЗУ (рекомендуется)
Дисковое пространство Нет минимальных требований
Версия операционной системы Windows XP или выше, Linux

Давайте теперь перейдем к этапам установки Apache POI.

Шаг 1. Проверьте вашу установку Java

Прежде всего, вам необходимо установить Java Software Development Kit (SDK) в вашей системе. Чтобы убедиться в этом, выполните любую из двух команд в зависимости от платформы, на которой вы работаете.

Если установка Java была выполнена правильно, то на ней отобразится текущая версия и спецификация вашей установки Java. Пример вывода приведен в следующей таблице.

Платформа команда Пример вывода
Windows

Откройте командную консоль и введите —

\> Java-версия

Java версия «1.7.0_60»

Среда выполнения Java (TM) SE (сборка 1.7.0_60-b19)

64-разрядная серверная виртуальная машина Java Hotspot (TM) (сборка 24.60-b09, смешанный режим)

Linux

Откройте командный терминал и введите —

$ java – версия

Java-версия «1.7.0_25»

Открытая среда выполнения JDK (rhel-2.3.10.4.el6_4-x86_64)

Откройте виртуальную машину 64-разрядного сервера JDK (сборка 23.7-b01, смешанный режим)

Откройте командную консоль и введите —

\> Java-версия

Java версия «1.7.0_60»

Среда выполнения Java (TM) SE (сборка 1.7.0_60-b19)

64-разрядная серверная виртуальная машина Java Hotspot (TM) (сборка 24.60-b09, смешанный режим)

Откройте командный терминал и введите —

$ java – версия

Java-версия «1.7.0_25»

Открытая среда выполнения JDK (rhel-2.3.10.4.el6_4-x86_64)

Откройте виртуальную машину 64-разрядного сервера JDK (сборка 23.7-b01, смешанный режим)

  • Мы предполагаем, что читатели этого руководства установили Java SDK версии 1.7.0_60 в своей системе.

  • Если у вас нет Java SDK, загрузите его текущую версию с https://www.oracle.com/technetwork/java/javase/downloads/index.html и установите его.

Мы предполагаем, что читатели этого руководства установили Java SDK версии 1.7.0_60 в своей системе.

Если у вас нет Java SDK, загрузите его текущую версию с https://www.oracle.com/technetwork/java/javase/downloads/index.html и установите его.

Шаг 2. Установите среду Java

Установите переменную среды JAVA_HOME, чтобы она указывала на местоположение базовой директории, где установлена ​​Java на вашем компьютере. Например,

Sr.No. Платформа и описание
1

Windows

Установите JAVA_HOME в C: \ ProgramFiles \ java \ jdk1.7.0_60

2

Linux

Экспорт JAVA_HOME = / usr / local / java-current

Windows

Установите JAVA_HOME в C: \ ProgramFiles \ java \ jdk1.7.0_60

Linux

Экспорт JAVA_HOME = / usr / local / java-current

Добавьте полный путь расположения компилятора Java к системному пути.

Sr.No. Платформа и описание
1

Windows

Добавьте строку «C: \ Program Files \ Java \ jdk1.7.0_60 \ bin» в конец системной переменной PATH.

2

Linux

Экспорт PATH = $ PATH: $ JAVA_HOME / bin /

Windows

Добавьте строку «C: \ Program Files \ Java \ jdk1.7.0_60 \ bin» в конец системной переменной PATH.

Linux

Экспорт PATH = $ PATH: $ JAVA_HOME / bin /

Выполните команду java -version из командной строки, как описано выше.

Шаг 3: Установите Apache POI Library

Загрузите последнюю версию Apache POI по адресу https://poi.apache.org/download.html и разархивируйте его содержимое в папку, из которой необходимые библиотеки могут быть связаны с вашей программой Java. Предположим, что файлы собраны в папке на диске C.

На следующих изображениях показаны каталоги и файловая структура внутри загруженной папки.

яс

яс

Добавьте полный путь к пяти банкам, как показано на изображении выше, к CLASSPATH.

Sr.No. Платформа и описание
1

Windows

Добавьте следующие строки в конец пользовательской переменной

CLASSPATH —

«C: \ пои-3,9 \ пои-3.9-20121203.jar;»

«C: \ пои-3,9 \ пои-OOXML-3.9-20121203.jar;»

«C: \ пои-3,9 \ пои-OOXML-схемы-3.9-20121203.jar;»

«C: \ пои-3,9 \ OOXML Пб \ dom4j-1.6.1.jar;»

«C:. \ Пои-3,9 \ OOXML Пб \ XMLBeans-2.3.0.jar;»;

2

Linux

Экспортировать CLASSPATH = $ CLASSPATH:

/usr/share/poi-3.9/poi-3.9-20121203.tar:

/usr/share/poi-3.9/poi-ooxml-schemas-3.9-20121203.tar:

/usr/share/poi-3.9/poi-ooxml-3.9-20121203.tar:

/usr/share/poi-3.9/ooxml-lib/dom4j-1.6.1.tar:

/usr/share/poi-3.9/ooxml-lib/xmlbeans-2.3.0.tar

Windows

Добавьте следующие строки в конец пользовательской переменной

CLASSPATH —

«C: \ пои-3,9 \ пои-3.9-20121203.jar;»

«C: \ пои-3,9 \ пои-OOXML-3.9-20121203.jar;»

«C: \ пои-3,9 \ пои-OOXML-схемы-3.9-20121203.jar;»

«C: \ пои-3,9 \ OOXML Пб \ dom4j-1.6.1.jar;»

«C:. \ Пои-3,9 \ OOXML Пб \ XMLBeans-2.3.0.jar;»;

Linux

Экспортировать CLASSPATH = $ CLASSPATH:

/usr/share/poi-3.9/poi-3.9-20121203.tar:

/usr/share/poi-3.9/poi-ooxml-schemas-3.9-20121203.tar:

/usr/share/poi-3.9/poi-ooxml-3.9-20121203.tar:

/usr/share/poi-3.9/ooxml-lib/dom4j-1.6.1.tar:

/usr/share/poi-3.9/ooxml-lib/xmlbeans-2.3.0.tar

Apache POI — основные классы

В этой главе описываются несколько классов и методов в API-интерфейсе Apache POI, которые имеют решающее значение для работы с файлами Excel с помощью программ на Java.

рабочая тетрадь

Это супер-интерфейс всех классов, которые создают или поддерживают книги Excel. Он принадлежит пакету org.apache.poi.ss.usermodel . Два класса, которые реализуют этот интерфейс, следующие:

  • HSSFWorkbook — в этом классе есть методы для чтения и записи файлов Microsoft Excel в формате .xls. Он совместим с версиями MS-Office 97–2003.

  • XSSFWorkbook — в этом классе есть методы для чтения и записи XML-файлов Microsoft Excel и OpenOffice в формате .xls или .xlsx. Это совместимо с версиями MS-Office 2007 или позже.

HSSFWorkbook — в этом классе есть методы для чтения и записи файлов Microsoft Excel в формате .xls. Он совместим с версиями MS-Office 97–2003.

XSSFWorkbook — в этом классе есть методы для чтения и записи XML-файлов Microsoft Excel и OpenOffice в формате .xls или .xlsx. Это совместимо с версиями MS-Office 2007 или позже.

HSSFWorkbook

Это класс высокого уровня в пакете org.apache.poi.hssf.usermodel . Он реализует интерфейс Workbook и используется для файлов Excel в формате .xls. Ниже перечислены некоторые методы и конструкторы этого класса.

Конструкторы классов

Sr.No. Конструктор и описание
1

HSSFWorkbook ()

Создает новый объект HSSFWorkbook с нуля.

2

HSSFWorkbook (каталог DirectoryNode, логические preserveNodes)

Создает новый объект HSSFWworkbook внутри определенного каталога.

3

HSSFWorkbook (каталог DirectoryNode, POIFSFileSystem fs, логические preserveNodes)

Учитывая объект POIFSFileSystem и определенный каталог в нем, он создает объект SSFWorkbook для чтения указанной книги.

4

HSSFWorkbook (java.io.InputStream s)

Создает новый объект HSSFWorkbook, используя входной поток.

5

HSSFWorkbook (java.io.InputStream s, логические preserveNodes)

Создает файловую систему POI вокруг вашего входного потока.

6

HSSFWorkbook (POIFSFileSystem fs)

Создает новый объект HSSFWorkbook, используя объект POIFSFileSystem.

7

HSSFWorkbook (POIFSFileSystem fs, логические preserveNodes)

Учитывая объект POIFSFileSystem, он создает новый объект HSSFWorkbook для чтения указанной книги.

HSSFWorkbook ()

Создает новый объект HSSFWorkbook с нуля.

HSSFWorkbook (каталог DirectoryNode, логические preserveNodes)

Создает новый объект HSSFWworkbook внутри определенного каталога.

HSSFWorkbook (каталог DirectoryNode, POIFSFileSystem fs, логические preserveNodes)

Учитывая объект POIFSFileSystem и определенный каталог в нем, он создает объект SSFWorkbook для чтения указанной книги.

HSSFWorkbook (java.io.InputStream s)

Создает новый объект HSSFWorkbook, используя входной поток.

HSSFWorkbook (java.io.InputStream s, логические preserveNodes)

Создает файловую систему POI вокруг вашего входного потока.

HSSFWorkbook (POIFSFileSystem fs)

Создает новый объект HSSFWorkbook, используя объект POIFSFileSystem.

HSSFWorkbook (POIFSFileSystem fs, логические preserveNodes)

Учитывая объект POIFSFileSystem, он создает новый объект HSSFWorkbook для чтения указанной книги.

Часто используемые параметры внутри этих конструкторов:

  • каталог — это каталог файловой системы POI для обработки.

  • fs — это файловая система POI, которая содержит поток рабочей книги.

  • preservenodes — это необязательный параметр, который решает, сохранять ли другие узлы, такие как макросы. Он потребляет много памяти, так как хранит всю систему POIFileSystem в памяти (если установлена).

каталог — это каталог файловой системы POI для обработки.

fs — это файловая система POI, которая содержит поток рабочей книги.

preservenodes — это необязательный параметр, который решает, сохранять ли другие узлы, такие как макросы. Он потребляет много памяти, так как хранит всю систему POIFileSystem в памяти (если установлена).

Примечание. Класс HSSFWorkbook содержит несколько методов; однако они совместимы только с форматом xls. В этом руководстве основное внимание уделяется последней версии форматов файлов Excel. Следовательно, методы класса HSSFWorkbook здесь не перечислены. Если вам нужны эти методы класса, обратитесь к API класса POI-HSSFWorkbook по адресу https://poi.apache.org/apidocs/org/apache/poi/hssf/usermodel/HSSFWorkbook.html.

XSSFWorkbook

Это класс, который используется для представления форматов файлов Excel как высокого, так и низкого уровня. Он принадлежит пакету org.apache.xssf.usemodel и реализует интерфейс Workbook . Ниже перечислены методы и конструкторы этого класса.

Конструкторы классов

Sr.No. Конструктор и описание
1

XSSFWorkbook ()

Создает новый объект XSSFworkbook с нуля.

2

XSSFWorkbook (файл java.io.File)

Создает объект XSSFWorkbook из заданного файла.

3

XSSFWorkbook (java.io.InputStream is)

Создает объект XSSFWorkbook, буферизуя весь входной поток в память и затем открывая для него объект OPCPackage.

4

XSSFWorkbook (путь java.lang.String)

Создает объект XSSFWorkbook с полным путем к файлу.

XSSFWorkbook ()

Создает новый объект XSSFworkbook с нуля.

XSSFWorkbook (файл java.io.File)

Создает объект XSSFWorkbook из заданного файла.

XSSFWorkbook (java.io.InputStream is)

Создает объект XSSFWorkbook, буферизуя весь входной поток в память и затем открывая для него объект OPCPackage.

XSSFWorkbook (путь java.lang.String)

Создает объект XSSFWorkbook с полным путем к файлу.

Методы класса

Sr.No. Метод и описание
1

createSheet ()

Создает лист XSSFS для этой книги, добавляет его на листы и возвращает представление высокого уровня.

2

createSheet (имя листа java.lang.String)

Создает новый лист для этой рабочей книги и возвращает представление высокого уровня.

3

CreateFont ()

Создает новый шрифт и добавляет его в таблицу шрифтов рабочей книги.

4

createCellStyle ()

Создает новый XSSFCellStyle и добавляет его в таблицу стилей рабочей книги.

5

CreateFont ()

Создает новый шрифт и добавляет его в таблицу шрифтов рабочей книги.

6

setPrintArea (int sheetIndex, int startColumn, int endColumn, int startRow, int endRow)

Устанавливает область печати данного листа в соответствии с указанными параметрами.

createSheet ()

Создает лист XSSFS для этой книги, добавляет его на листы и возвращает представление высокого уровня.

createSheet (имя листа java.lang.String)

Создает новый лист для этой рабочей книги и возвращает представление высокого уровня.

CreateFont ()

Создает новый шрифт и добавляет его в таблицу шрифтов рабочей книги.

createCellStyle ()

Создает новый XSSFCellStyle и добавляет его в таблицу стилей рабочей книги.

CreateFont ()

Создает новый шрифт и добавляет его в таблицу шрифтов рабочей книги.

setPrintArea (int sheetIndex, int startColumn, int endColumn, int startRow, int endRow)

Устанавливает область печати данного листа в соответствии с указанными параметрами.

Остальные методы этого класса см. В полном документе API по адресу: https://poi.apache.org/apidocs/org/apache/poi/xssf/usermodel/XSSFWorkbook.html. для полного списка методов.

Простынь

Sheet — это интерфейс в пакете org.apache.poi.ss.usermodel , и это суперинтерфейс всех классов, которые создают электронные таблицы высокого или низкого уровня с конкретными именами. Наиболее распространенным типом электронной таблицы является рабочий лист, который представлен в виде сетки ячеек.

HSSFSheet

Это класс в пакете org.apache.poi.hssf.usermodel . Он может создавать таблицы Excel и позволяет форматировать стиль листа и данные листа.

Конструкторы классов

Sr.No. Конструктор и описание
1

HSSFSheet (рабочая книга HSSFWorkbook)

Создает новый лист HSSFS, вызываемый HSSFWorkbook для создания листа с нуля.

2

HSSFSheet (рабочая книга HSSFWorkbook, лист InternalSheet)

Создает лист HSSFS, представляющий данный объект листа.

HSSFSheet (рабочая книга HSSFWorkbook)

Создает новый лист HSSFS, вызываемый HSSFWorkbook для создания листа с нуля.

HSSFSheet (рабочая книга HSSFWorkbook, лист InternalSheet)

Создает лист HSSFS, представляющий данный объект листа.

XSSFSheet

Это класс, который представляет высокоуровневое представление таблицы Excel. Он находится в пакете org.apache.poi.hssf.usermodel .

Конструкторы классов

Sr.No. Конструктор и описание
1

XSSFSheet ()

Создает новый лист XSSFS — вызывается XSSFWorkbook для создания листа с нуля.

2

XSSFSheet (часть PackagePart, rel)

Создает XSSFSheet, представляющий данную часть пакета и отношения.

XSSFSheet ()

Создает новый лист XSSFS — вызывается XSSFWorkbook для создания листа с нуля.

XSSFSheet (часть PackagePart, rel)

Создает XSSFSheet, представляющий данную часть пакета и отношения.

Методы класса

Sr.No. Метод и описание
1

addMergedRegion (CellRangeAddress region)

Добавляет объединенную область ячеек (следовательно, эти ячейки образуют единицу).

2

autoSizeColumn (столбец int)

Регулирует ширину столбца в соответствии с содержимым.

3

итератора ()

Этот метод является псевдонимом для rowIterator (), чтобы разрешить циклы foreach.

4

addHyperlink (гиперссылка XSSFHyperlink)

Регистрирует гиперссылку в коллекции гиперссылок на этом листе

addMergedRegion (CellRangeAddress region)

Добавляет объединенную область ячеек (следовательно, эти ячейки образуют единицу).

autoSizeColumn (столбец int)

Регулирует ширину столбца в соответствии с содержимым.

итератора ()

Этот метод является псевдонимом для rowIterator (), чтобы разрешить циклы foreach.

addHyperlink (гиперссылка XSSFHyperlink)

Регистрирует гиперссылку в коллекции гиперссылок на этом листе

Для остальных методов этого класса, обратитесь к полному API по адресу: https://poi.apache.org/apidocs/org/apache/poi/xssf/usermodel/XSSFSheet.html.

Строка

Это интерфейс в пакете org.apache.poi.ss.usermodel . Он используется для высокоуровневого представления строки электронной таблицы. Это суперинтерфейс всех классов, которые представляют строки в библиотеке POI.

XSSFRow

Это класс в пакете org.apache.poi.xssf.usermodel . Он реализует интерфейс строк, поэтому он может создавать строки в электронной таблице. Ниже перечислены методы и конструкторы этого класса.

Методы класса

Sr.No. Метод и описание
1

createCell (int columnIndex)

Создает новые ячейки в строке и возвращает ее.

2

setHeight (короткая высота)

Устанавливает высоту в коротких единицах.

createCell (int columnIndex)

Создает новые ячейки в строке и возвращает ее.

setHeight (короткая высота)

Устанавливает высоту в коротких единицах.

Для остальных методов этого класса перейдите по указанной ссылке https://poi.apache.org/apidocs/org/apache/poi/xssf/usermodel/XSSFRow.html.

клетка

Это интерфейс в пакете org.apache.poi.ss.usermodel . Это суперинтерфейс всех классов, которые представляют ячейки в строках электронной таблицы.

Ячейки могут иметь различные атрибуты, такие как пустое, числовое, дата, ошибка и т. Д. Ячейки должны иметь свои собственные номера (на основе 0) перед добавлением в строку.

XSSFCell

Это класс в пакете org.apache.poi.xssf.usermodel . Он реализует интерфейс Cell. Это высокоуровневое представление ячеек в строках электронной таблицы.

Сводка по полю

Ниже перечислены некоторые поля класса XSSFCell вместе с их описанием.

Sr.No. Тип ячейки и описание
1

CELL_TYPE_BLANK

Представляет пустую ячейку

2

CELL_TYPE_BOOLEAN

Представляет логическую ячейку (true или false)

3

CELL_TYPE_ERROR

Представляет значение ошибки в ячейке

4

CELL_TYPE_FORMULA

Представляет результат формулы в ячейке

5

CELL_TYPE_NUMERIC

Представляет числовые данные в ячейке

6

CELL_TYPE_STRING

Представляет строку (текст) в ячейке

CELL_TYPE_BLANK

Представляет пустую ячейку

CELL_TYPE_BOOLEAN

Представляет логическую ячейку (true или false)

CELL_TYPE_ERROR

Представляет значение ошибки в ячейке

CELL_TYPE_FORMULA

Представляет результат формулы в ячейке

CELL_TYPE_NUMERIC

Представляет числовые данные в ячейке

CELL_TYPE_STRING

Представляет строку (текст) в ячейке

Методы класса

Sr.No. Метод и описание
1

setCellStyle (стиль CellStyle)

Устанавливает стиль для ячейки.

2

setCellType (int cellType)

Устанавливает тип ячеек (числовой, формулы или строки).

3

setCellValue (логическое значение)

Устанавливает логическое значение для ячейки.

4

setCellValue (значение java.util.Calendar)

Устанавливает значение даты для ячейки.

5

setCellValue (двойное значение)

Устанавливает числовое значение для ячейки.

6

setCellValue (java.lang.String str)

Устанавливает строковое значение для ячейки.

7

setHyperlink (гиперссылка гиперссылки)

Назначает гиперссылку на эту ячейку.

setCellStyle (стиль CellStyle)

Устанавливает стиль для ячейки.

setCellType (int cellType)

Устанавливает тип ячеек (числовой, формулы или строки).

setCellValue (логическое значение)

Устанавливает логическое значение для ячейки.

setCellValue (значение java.util.Calendar)

Устанавливает значение даты для ячейки.

setCellValue (двойное значение)

Устанавливает числовое значение для ячейки.

setCellValue (java.lang.String str)

Устанавливает строковое значение для ячейки.

setHyperlink (гиперссылка гиперссылки)

Назначает гиперссылку на эту ячейку.

Для остальных методов и полей этого класса перейдите по следующей ссылке: https://poi.apache.org/apidocs/org/apache/poi/xssf/usermodel/XSSFCell.html.

XSSFCellStyle

Это класс в пакете org.apache.poi.xssf.usermodel . Он предоставит возможную информацию о формате содержимого в ячейке электронной таблицы. Он также предоставляет варианты для изменения этого формата. Он реализует интерфейс CellStyle.

Сводка по полю

В следующей таблице перечислены несколько полей, которые унаследованы от интерфейса CellStyle.

Sr.No. Поле и описание
1

ALIGN_CENTER

Центр выровнять содержимое ячейки

2

ALIGN_CENTER_SELECTION

Горизонтальное выравнивание по центру

3

ALIGN_FILL

Ячейка соответствует размеру контента

4

ALIGN_JUSTIFY

Подогнать содержимое ячейки по ширине

5

ВЫРОВНЯТЬ ПО ЛЕВОМУ КРАЮ

Выровнять по левому краю содержимое ячейки

6

ALIGN_RIGHT

Выровняйте содержимое ячейки вправо

7

BORDER_DASH_DOT

Стиль ячейки с тире и точкой

8

BORDER_DOTTED

Стиль ячейки с пунктирной рамкой

9

BORDER_DASHED

Стиль ячейки с пунктирной каймой

10

BORDER_THICK

Стиль ячейки с толстой каймой

11

BORDER_THIN

Стиль ячейки с тонкой каймой

12

VERTICAL_BOTTOM

Выровняйте содержимое ячейки по вертикали

13

VERTICAL_CENTER

Выровняйте содержимое ячейки по центру

15

VERTICAL_JUSTIFY

Выровняйте и выровняйте содержимое ячейки по вертикали

16

VERTICAL_TOP

Вертикальное выравнивание сверху

ALIGN_CENTER

Центр выровнять содержимое ячейки

ALIGN_CENTER_SELECTION

Горизонтальное выравнивание по центру

ALIGN_FILL

Ячейка соответствует размеру контента

ALIGN_JUSTIFY

Подогнать содержимое ячейки по ширине

ВЫРОВНЯТЬ ПО ЛЕВОМУ КРАЮ

Выровнять по левому краю содержимое ячейки

ALIGN_RIGHT

Выровняйте содержимое ячейки вправо

BORDER_DASH_DOT

Стиль ячейки с тире и точкой

BORDER_DOTTED

Стиль ячейки с пунктирной рамкой

BORDER_DASHED

Стиль ячейки с пунктирной каймой

BORDER_THICK

Стиль ячейки с толстой каймой

BORDER_THIN

Стиль ячейки с тонкой каймой

VERTICAL_BOTTOM

Выровняйте содержимое ячейки по вертикали

VERTICAL_CENTER

Выровняйте содержимое ячейки по центру

VERTICAL_JUSTIFY

Выровняйте и выровняйте содержимое ячейки по вертикали

VERTICAL_TOP

Вертикальное выравнивание сверху

Конструкторы классов

Sr.No. Конструктор и описание
1

XSSFCellStyle (int cellXfId, int cellStyleXfId, StylesTable stylesSource, тема ThemesTable)

Создает стиль ячейки из поставляемых частей

2

XSSFCellStyle (StylesTable stylesSource)

Создает пустую ячейку Стиль

XSSFCellStyle (int cellXfId, int cellStyleXfId, StylesTable stylesSource, тема ThemesTable)

Создает стиль ячейки из поставляемых частей

XSSFCellStyle (StylesTable stylesSource)

Создает пустую ячейку Стиль

Методы класса

S.No Метод и описание
1

setAlignment (короткое выравнивание)

Устанавливает тип горизонтального выравнивания для ячейки

2

setBorderBottom (короткая граница)

Устанавливает тип границы для нижней границы ячейки

3

setBorderColor (сторона XSSFCellBorder.BorderSide, цвет XSSFColor)

Устанавливает цвет для выбранной границы

4

setBorderLeft (Короткая граница)

Устанавливает тип границы для левой границы ячейки

5

setBorderRight (короткая граница)

Устанавливает тип границы для правой границы ячейки

6

setBorderTop (короткая граница)

Устанавливает тип границы для верхней границы ячейки

7

setFillBackgroundColor (цвет XSSFColor)

Устанавливает цвет заливки фона, представленный в виде значения XSSFColor.

8

setFillForegroundColor (цвет XSSFColor)

Устанавливает цвет заливки переднего плана, представленный в виде значения XSSFColor.

9

setFillPattern (короткий фп)

Определяет информацию о заливке ячеек для заливки ячеек по шаблону и сплошному цвету.

10

setFont (шрифт шрифта)

Устанавливает шрифт для этого стиля.

11

setRotation (короткое вращение)

Устанавливает степень поворота для текста в ячейке.

12

setVerticalAlignment (короткое выравнивание)

Устанавливает тип вертикального выравнивания для ячейки.

setAlignment (короткое выравнивание)

Устанавливает тип горизонтального выравнивания для ячейки

setBorderBottom (короткая граница)

Устанавливает тип границы для нижней границы ячейки

setBorderColor (сторона XSSFCellBorder.BorderSide, цвет XSSFColor)

Устанавливает цвет для выбранной границы

setBorderLeft (Короткая граница)

Устанавливает тип границы для левой границы ячейки

setBorderRight (короткая граница)

Устанавливает тип границы для правой границы ячейки

setBorderTop (короткая граница)

Устанавливает тип границы для верхней границы ячейки

setFillBackgroundColor (цвет XSSFColor)

Устанавливает цвет заливки фона, представленный в виде значения XSSFColor.

setFillForegroundColor (цвет XSSFColor)

Устанавливает цвет заливки переднего плана, представленный в виде значения XSSFColor.

setFillPattern (короткий фп)

Определяет информацию о заливке ячеек для заливки ячеек по шаблону и сплошному цвету.

setFont (шрифт шрифта)

Устанавливает шрифт для этого стиля.

setRotation (короткое вращение)

Устанавливает степень поворота для текста в ячейке.

setVerticalAlignment (короткое выравнивание)

Устанавливает тип вертикального выравнивания для ячейки.

Для остальных методов и полей в этом классе перейдите по следующей ссылке: https://poi.apache.org/apidocs/org/apache/poi/xssf/usermodel/XSSFCellStyle.html.

HSSFColor

Это класс в пакете org.apache.poi.hssf.util . Он предоставляет разные цвета как вложенные классы. Обычно эти вложенные классы представлены с использованием своих собственных индексов. Он реализует интерфейс Color.

Вложенные классы

Все вложенные классы этого класса являются статическими, и у каждого класса есть свой индекс. Эти вложенные цветовые классы используются для форматирования ячеек, такого как содержимое ячейки, границы, передний план и фон. Ниже перечислены некоторые из вложенных классов.

Sr.No. Имена классов (цвета)
1 HSSFColor.AQUA
2 HSSFColor.AUTOMATIC
3 HSSFColor.BLACK
4 HSSFColor.BLUE
5 HSSFColor.BRIGHT_GREEN
6 HSSFColor.BRIGHT_GRAY
7 HSSFColor.CORAL
8 HSSFColor.DARK_BLUE
9 HSSFColor.DARK_GREEN
10 HSSFColor.SKY_BLUE
11 HSSFColor.WHITE
12 HSSFColor.YELLOW

Методы класса

Важен только один метод этого класса, который используется для получения значения индекса.

Sr.No. Метод и описание
1

GetIndex ()

Этот метод используется для получения значения индекса вложенного класса.

GetIndex ()

Этот метод используется для получения значения индекса вложенного класса.

Остальные методы и вложенные классы см. По следующей ссылке: https://poi.apache.org/apidocs/org/apache/poi/hssf/util/HSSFColor.html.

XSSFColor

Это класс в пакете org.apache.poi.xssf.usermodel . Он используется для представления цвета в электронной таблице. Он реализует интерфейс Color. Ниже перечислены некоторые из его методов и конструкторов.

Конструкторы классов

Sr.No. Конструктор и описание
1

XSSFColor ()

Создает новый экземпляр XSSFColor.

2

XSSFColor (byte [] rgb)

Создает новый экземпляр XSSFColor, используя RGB.

3

XSSFColor (java.awt.Color clr)

Создает новый экземпляр XSSFColor, используя класс Color из пакета awt.

XSSFColor ()

Создает новый экземпляр XSSFColor.

XSSFColor (byte [] rgb)

Создает новый экземпляр XSSFColor, используя RGB.

XSSFColor (java.awt.Color clr)

Создает новый экземпляр XSSFColor, используя класс Color из пакета awt.

Методы класса

Sr.No. Метод и описание
1

setAuto (логическое авто)

Устанавливает логическое значение, указывающее, что ctColor является автоматическим и системный ctColor является зависимым.

2

setIndexed (int indexed)

Устанавливает индексированное значение ctColor как системный ctColor.

setAuto (логическое авто)

Устанавливает логическое значение, указывающее, что ctColor является автоматическим и системный ctColor является зависимым.

setIndexed (int indexed)

Устанавливает индексированное значение ctColor как системный ctColor.

Для остальных методов перейдите по следующей ссылке: https://poi.apache.org/apidocs/org/apache/poi/xssf/usermodel/XSSFColor.html.

XSSFFont

Это класс в пакете org.apache.poi.xssf.usermodel . Он реализует интерфейс Font и поэтому может обрабатывать разные шрифты в книге.

Конструктор классов

Sr.No. Конструктор и описание
1

XSSFFont ()

Создает новый экземпляр XSSFont.

XSSFFont ()

Создает новый экземпляр XSSFont.

Методы класса

Sr.No. Метод и описание
1

setBold (логическое полужирное)

Устанавливает логическое значение для атрибута «полужирный».

2

setColor (короткий цвет)

Устанавливает индексированный цвет для шрифта.

3

setColor (XSSFColor color)

Устанавливает цвет для шрифта в стандартном альфа RGB цветовом значении.

4

setFontHeight (короткая высота)

Устанавливает высоту шрифта в пунктах.

5

setFontName (имя java.lang.String)

Устанавливает имя для шрифта.

6

setItalic (логический курсив)

Устанавливает логическое значение для свойства ‘italic’.

setBold (логическое полужирное)

Устанавливает логическое значение для атрибута «полужирный».

setColor (короткий цвет)

Устанавливает индексированный цвет для шрифта.

setColor (XSSFColor color)

Устанавливает цвет для шрифта в стандартном альфа RGB цветовом значении.

setFontHeight (короткая высота)

Устанавливает высоту шрифта в пунктах.

setFontName (имя java.lang.String)

Устанавливает имя для шрифта.

setItalic (логический курсив)

Устанавливает логическое значение для свойства ‘italic’.

Для остальных методов перейдите по следующей ссылке: https://poi.apache.org/apidocs/org/apache/poi/xssf/usermodel/XSSFFont.html.

XSSFHyperlink

Это класс в пакете org.apache.poi.xssf.usermodel . Он реализует интерфейс Hyperlink. Он используется для установки гиперссылки на содержимое ячейки электронной таблицы.

поля

Поля этого класса следующие. Здесь поля означают типы используемых гиперссылок.

Sr.No. Поле и описание
1

LINK_DOCUMENT

Используется для ссылки на любой другой документ

2

LINK_EMAIL

Используется для ссылки на электронную почту

3

LINK_FILE

Используется для связи любого другого файла в любом формате

4

LINK_URL

Используется для ссылки на веб-URL

LINK_DOCUMENT

Используется для ссылки на любой другой документ

LINK_EMAIL

Используется для ссылки на электронную почту

LINK_FILE

Используется для связи любого другого файла в любом формате

LINK_URL

Используется для ссылки на веб-URL

Методы класса

Sr.No. Метод и описание
1

setAddress (адрес java.lang.String)

Адрес гиперссылки.

setAddress (адрес java.lang.String)

Адрес гиперссылки.

Для остальных методов перейдите по следующей ссылке: https://poi.apache.org/apidocs/org/apache/poi/xssf/usermodel/XSSFHyperlink.html.

XSSFCreationHelper

Это класс в пакете org.apache.poi.xssf.usermodel . Он реализует интерфейс CreationHelper. Он используется в качестве класса поддержки для оценки формул и настройки гиперссылок.

Методы класса

Sr.No. Метод и описание
1

createFormulaEvaluator ()

Создает экземпляр XSSFFormulaEvaluator, объект, который оценивает ячейки формулы.

2

createHyperlink (тип int)

Создает новый XSSFHyperlink.

createFormulaEvaluator ()

Создает экземпляр XSSFFormulaEvaluator, объект, который оценивает ячейки формулы.

createHyperlink (тип int)

Создает новый XSSFHyperlink.

Остальные методы см. По следующей ссылке: https://poi.apache.org/apidocs/org/apache/poi/xssf/usermodel/XSSFCreationHelper.html.

XSSFPrintSetup

Это класс в пакете org.apache.poi.xsssf.usermodel . Он реализует интерфейс PrintSetup . Он используется для установки размера страницы печати, области, параметров и настроек.

Методы класса

Sr.No. Метод и описание
1

setLandscape (логическое значение ls)

Устанавливает логическое значение, чтобы разрешить или заблокировать альбомную печать.

2

setLeftToRight (логический ltor)

Устанавливает, идти ли слева направо или сверху вниз при заказе во время печати.

3

setPaperSize (короткий размер)

Устанавливает размер бумаги.

setLandscape (логическое значение ls)

Устанавливает логическое значение, чтобы разрешить или заблокировать альбомную печать.

setLeftToRight (логический ltor)

Устанавливает, идти ли слева направо или сверху вниз при заказе во время печати.

setPaperSize (короткий размер)

Устанавливает размер бумаги.

Для остальных методов перейдите по следующей ссылке: https://poi.apache.org/apidocs/org/apache/poi/hssf/usermodel/HSSFPrintSetup.html.

Apache POI — рабочие книги

Здесь термин «Рабочая книга» означает файл Microsoft Excel. После завершения этой главы вы сможете создавать новые рабочие книги и открывать существующие рабочие книги с помощью Java-программы.

Создать пустую книгу

Следующая простая программа используется для создания пустой книги Microsoft Excel.

import java.io.*;
import org.apache.poi.xssf.usermodel.*;

public class CreateWorkBook {
   public static void main(String[] args)throws Exception {
      //Create Blank workbook
      XSSFWorkbook workbook = new XSSFWorkbook(); 

      //Create file system using specific name
      FileOutputStream out = new FileOutputStream(new File("createworkbook.xlsx"));

      //write operation workbook using file out object 
      workbook.write(out);
      out.close();
      System.out.println("createworkbook.xlsx written successfully");
   }
}

Давайте сохраним указанный выше Java-код как CreateWorkBook.java , а затем скомпилируем и выполним его из командной строки следующим образом:

$javac CreateWorkBook.java
$java CreateWorkBook

Если ваша системная среда сконфигурирована с библиотекой POI, она скомпилируется и выполнится, чтобы создать пустой файл Excel с именем createworkbook.xlsx в вашем текущем каталоге и отобразить следующий вывод в командной строке.

createworkbook.xlsx written successfully

Открыть существующую книгу

Используйте следующий код, чтобы открыть существующую книгу.

import java.io.*;
import org.apache.poi.xssf.usermodel.*;

public class OpenWorkBook {
   public static void main(String args[])throws Exception { 
      File file = new File("openworkbook.xlsx");
      FileInputStream fIP = new FileInputStream(file);
      
      //Get the workbook instance for XLSX file 
      XSSFWorkbook workbook = new XSSFWorkbook(fIP);
      
      if(file.isFile() && file.exists()) {
         System.out.println("openworkbook.xlsx file open successfully.");
      } else {
         System.out.println("Error to open openworkbook.xlsx file.");
      }
   }
}

Сохраните приведенный выше Java-код как OpenWorkBook.java , а затем скомпилируйте и выполните его из командной строки следующим образом:

$javac OpenWorkBook.java
$java OpenWorkBook

Он будет скомпилирован и выполнен для генерации следующего вывода.

openworkbook.xlsx file open successfully.

После открытия рабочей книги вы можете выполнять операции чтения и записи на ней.

Apache POI — электронные таблицы

В этой главе объясняется, как создать электронную таблицу и управлять ею с помощью Java. Электронная таблица — это страница в файле Excel; он содержит строки и столбцы с конкретными именами.

После прочтения этой главы вы сможете создать электронную таблицу и выполнить операции чтения с ней.

Создать электронную таблицу

Прежде всего, давайте создадим электронную таблицу, используя ссылочные классы, которые обсуждались в предыдущих главах. Следуя предыдущей главе, сначала создайте рабочую книгу, а затем мы можем продолжить и создать лист.

Следующий фрагмент кода используется для создания электронной таблицы.

//Create Blank workbook
XSSFWorkbook workbook = new XSSFWorkbook();

//Create a blank spreadsheet
XSSFSheet spreadsheet = workbook.createSheet("Sheet Name");

Строки в таблице

Электронные таблицы имеют сетку. Строки и столбцы обозначены конкретными именами. Столбцы обозначены алфавитами, а строки — номерами.

Следующий фрагмент кода используется для создания строки.

XSSFRow row = spreadsheet.createRow((short)1);

Написать в электронную таблицу

Давайте рассмотрим пример данных о сотрудниках. Здесь данные о сотрудниках приведены в табличной форме.

Emp Id Имя Эмпайра обозначение
TP01 Гопал Технический менеджер
TP02 Маниша Proof Reader
Tp03 Masthan Технический писатель
Tp04 Сатиш Технический писатель
Tp05 Кришна Технический писатель

Следующий код используется для записи вышеуказанных данных в электронную таблицу.

import java.io.File;
import java.io.FileOutputStream;

import java.util.Map;
import java.util.Set;
import java.util.TreeMap;

import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.xssf.usermodel.XSSFRow;
import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;

public class Writesheet {
   public static void main(String[] args) throws Exception {

      //Create blank workbook
      XSSFWorkbook workbook = new XSSFWorkbook(); 

      //Create a blank sheet
      XSSFSheet spreadsheet = workbook.createSheet(" Employee Info ");

      //Create row object
      XSSFRow row;

      //This data needs to be written (Object[])
      Map < String, Object[] > empinfo = 
      new TreeMap < String, Object[] >();
      empinfo.put( "1", new Object[] { "EMP ID", "EMP NAME", "DESIGNATION" });
      empinfo.put( "2", new Object[] { "tp01", "Gopal", "Technical Manager" });
      empinfo.put( "3", new Object[] { "tp02", "Manisha", "Proof Reader" });
      empinfo.put( "4", new Object[] { "tp03", "Masthan", "Technical Writer" });
      empinfo.put( "5", new Object[] { "tp04", "Satish", "Technical Writer" });
      empinfo.put( "6", new Object[] { "tp05", "Krishna", "Technical Writer" });
      
      //Iterate over data and write to sheet
      Set < String > keyid = empinfo.keySet();
      int rowid = 0;

      for (String key : keyid) {
         row = spreadsheet.createRow(rowid++);
         Object [] objectArr = empinfo.get(key);
         int cellid = 0;

         for (Object obj : objectArr) {
            Cell cell = row.createCell(cellid++);
            cell.setCellValue((String)obj);
         }
      }

      //Write the workbook in file system
      FileOutputStream out = new FileOutputStream(new File("Writesheet.xlsx"));
      workbook.write(out);
      out.close();
      System.out.println("Writesheet.xlsx written successfully");
   }
}

Сохраните приведенный выше Java-код как Writesheet.java , а затем скомпилируйте и запустите его из командной строки следующим образом:

$javac Writesheet.java
$java Writesheet

Он скомпилируется и выполнится для создания файла Excel с именем Writesheet.xlsx в вашем текущем каталоге, и вы получите следующий вывод в командной строке.

Writesheet.xlsx written successfully

Файл Writesheet.xlsx выглядит следующим образом.

Writesheet

Читать из таблицы

Давайте рассмотрим вышеупомянутый файл Excel с именем Writesheet.xslx в качестве входных данных. Соблюдайте следующий код; он используется для чтения данных из электронной таблицы.

import java.io.File;
import java.io.FileInputStream;

import java.util.Iterator;

import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.xssf.usermodel.XSSFRow;
import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;

public class Readsheet {
   static XSSFRow row;
   public static void main(String[] args) throws Exception {
      FileInputStream fis = new FileInputStream(new File("WriteSheet.xlsx"));
      
      XSSFWorkbook workbook = new XSSFWorkbook(fis);
      XSSFSheet spreadsheet = workbook.getSheetAt(0);
      Iterator < Row >  rowIterator = spreadsheet.iterator();
      
      while (rowIterator.hasNext()) {
         row = (XSSFRow) rowIterator.next();
         Iterator < Cell >  cellIterator = row.cellIterator();
         
         while ( cellIterator.hasNext()) {
            Cell cell = cellIterator.next();
            
            switch (cell.getCellType()) {
               case Cell.CELL_TYPE_NUMERIC:
                  System.out.print(cell.getNumericCellValue() + " \t\t ");
                  break;
               
               case Cell.CELL_TYPE_STRING:
                  System.out.print(
                  cell.getStringCellValue() + " \t\t ");
                  break;
            }
         }
         System.out.println();
      }
      fis.close();
   }
}

Давайте сохраним приведенный выше код в файле Readsheet.java , а затем скомпилируем и запустим его из командной строки следующим образом:

$javac Readsheet.java
$java Readsheet

Если ваша системная среда сконфигурирована с библиотекой POI, она будет скомпилирована и выполнена для генерации следующего вывода в командной строке.

EMP ID   EMP NAME       DESIGNATION 
 tp01     Gopal       Technical Manager 
 tp02     Manisha     Proof Reader 
 tp03     Masthan     Technical Writer 
 tp04     Satish      Technical Writer 
 tp05     Krishna     Technical Writer

Apache POI — Клетки

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

Создать ячейку

Вам нужно создать строку перед созданием ячейки. Ряд — это не что иное, как набор ячеек.

Следующий фрагмент кода используется для создания ячейки.

//create new workbook
XSSFWorkbook workbook = new XSSFWorkbook(); 

//create spreadsheet with a name
XSSFSheet spreadsheet = workbook.createSheet("new sheet");

//create first row on a created spreadsheet
XSSFRow row = spreadsheet.createRow(0);

//create first cell on created row
XSSFCell cell = row.createCell(0);

Типы клеток

Тип ячейки указывает, может ли ячейка содержать строки, числовые значения или формулы. Строковая ячейка не может содержать числовые значения, а числовая ячейка не может содержать строки. Ниже приведены типы ячеек, их значения и синтаксис типов.

Тип значения ячейки Введите Синтаксис
Пустое значение ячейки XSSFCell.CELL_TYPE_BLANK
Булево значение ячейки XSSFCell.CELL.TYPE_BOOLEAN
Значение ячейки ошибки XSSFCell.CELL_TYPE_ERROR
Числовое значение ячейки XSSFCell.CELL_TYPE_NUMERIC
Строковое значение ячейки XSSFCell.CELL_TYPE_STRING

Следующий код используется для создания различных типов ячеек в электронной таблице.

import java.io.File;
import java.io.FileOutputStream;

import java.util.Date;

import org.apache.poi.xssf.usermodel.XSSFCell;
import org.apache.poi.xssf.usermodel.XSSFRow;
import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;

public class TypesofCells {
   public static void main(String[] args)throws Exception {
      XSSFWorkbook workbook = new XSSFWorkbook(); 
      XSSFSheet spreadsheet = workbook.createSheet("cell types");
      
      XSSFRow row = spreadsheet.createRow((short) 2);
      row.createCell(0).setCellValue("Type of Cell");
      row.createCell(1).setCellValue("cell value");
      
      row = spreadsheet.createRow((short) 3);
      row.createCell(0).setCellValue("set cell type BLANK");
      row.createCell(1);
      
      row = spreadsheet.createRow((short) 4);
      row.createCell(0).setCellValue("set cell type BOOLEAN");
      row.createCell(1).setCellValue(true);
      
      row = spreadsheet.createRow((short) 5);
      row.createCell(0).setCellValue("set cell type ERROR");
      row.createCell(1).setCellValue(XSSFCell.CELL_TYPE_ERROR );
      
      row = spreadsheet.createRow((short) 6);
      row.createCell(0).setCellValue("set cell type date");
      row.createCell(1).setCellValue(new Date());
      
      row = spreadsheet.createRow((short) 7);
      row.createCell(0).setCellValue("set cell type numeric");
      row.createCell(1).setCellValue(20 );
      
      row = spreadsheet.createRow((short) 8);
      row.createCell(0).setCellValue("set cell type string");
      row.createCell(1).setCellValue("A String");
      
      FileOutputStream out = new FileOutputStream(new File("typesofcells.xlsx"));
      workbook.write(out);
      out.close();
      System.out.println("typesofcells.xlsx written successfully");
   }
}

Сохраните приведенный выше код в файле с именем TypesofCells.java , скомпилируйте и выполните его из командной строки следующим образом.

$javac TypesofCells.java
$java TypesofCells

Если ваша система сконфигурирована с библиотекой POI, то она скомпилируется и выполнится, чтобы сгенерировать файл Excel с именем typesofcells.xlsx в вашем текущем каталоге и отобразить следующий вывод.

typesofcells.xlsx written successfully

Файл typesofcells.xlsx выглядит следующим образом.

Тип клеток

Cell Styles

Здесь вы можете узнать, как выполнять форматирование ячеек и применять различные стили, такие как объединение смежных ячеек, добавление границ, настройка выравнивания ячеек и заливка цветами.

Следующий код используется для применения различных стилей к ячейкам с помощью Java-программирования.

import java.io.File;
import java.io.FileOutputStream;

import org.apache.poi.hssf.util.HSSFColor;
import org.apache.poi.ss.usermodel.IndexedColors;
import org.apache.poi.ss.util.CellRangeAddress;
import org.apache.poi.xssf.usermodel.XSSFCell;
import org.apache.poi.xssf.usermodel.XSSFCellStyle;
import org.apache.poi.xssf.usermodel.XSSFRow;
import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;

public class CellStyle {
   public static void main(String[] args)throws Exception {
      XSSFWorkbook workbook = new XSSFWorkbook(); 
      XSSFSheet spreadsheet = workbook.createSheet("cellstyle");
      XSSFRow row = spreadsheet.createRow((short) 1);
      row.setHeight((short) 800);
      XSSFCell cell = (XSSFCell) row.createCell((short) 1);
      cell.setCellValue("test of merging");

      //MEARGING CELLS 
      //this statement for merging cells

      spreadsheet.addMergedRegion(
         new CellRangeAddress(
            1, //first row (0-based)
            1, //last row (0-based)
            1, //first column (0-based)
            4 //last column (0-based)
         )
      );
      
      //CELL Alignment
      row = spreadsheet.createRow(5); 
      cell = (XSSFCell) row.createCell(0);
      row.setHeight((short) 800);
      
      // Top Left alignment 
      XSSFCellStyle style1 = workbook.createCellStyle();
      spreadsheet.setColumnWidth(0, 8000);
      style1.setAlignment(XSSFCellStyle.ALIGN_LEFT);
      style1.setVerticalAlignment(XSSFCellStyle.VERTICAL_TOP);
      cell.setCellValue("Top Left");
      cell.setCellStyle(style1);
      row = spreadsheet.createRow(6); 
      cell = (XSSFCell) row.createCell(1);
      row.setHeight((short) 800);
      
      // Center Align Cell Contents 
      XSSFCellStyle style2 = workbook.createCellStyle();
      style2.setAlignment(XSSFCellStyle.ALIGN_CENTER);
      style2.setVerticalAlignment(XSSFCellStyle.VERTICAL_CENTER);
      cell.setCellValue("Center Aligned"); 
      cell.setCellStyle(style2);
      row = spreadsheet.createRow(7); 
      cell = (XSSFCell) row.createCell(2);
      row.setHeight((short) 800);
      
      // Bottom Right alignment 
      XSSFCellStyle style3 = workbook.createCellStyle();
      style3.setAlignment(XSSFCellStyle.ALIGN_RIGHT);
      style3.setVerticalAlignment(XSSFCellStyle.VERTICAL_BOTTOM);
      cell.setCellValue("Bottom Right");
      cell.setCellStyle(style3);
      row = spreadsheet.createRow(8);
      cell = (XSSFCell) row.createCell(3);
      
      // Justified Alignment 
      XSSFCellStyle style4 = workbook.createCellStyle();
      style4.setAlignment(XSSFCellStyle.ALIGN_JUSTIFY);
      style4.setVerticalAlignment(XSSFCellStyle.VERTICAL_JUSTIFY);
      cell.setCellValue("Contents are Justified in Alignment"); 
      cell.setCellStyle(style4);
      
      //CELL BORDER
      row = spreadsheet.createRow((short) 10);
      row.setHeight((short) 800);
      cell = (XSSFCell) row.createCell((short) 1);
      cell.setCellValue("BORDER");
      
      XSSFCellStyle style5 = workbook.createCellStyle();
      style5.setBorderBottom(XSSFCellStyle.BORDER_THICK);
      style5.setBottomBorderColor(IndexedColors.BLUE.getIndex());
      style5.setBorderLeft(XSSFCellStyle.BORDER_DOUBLE);
      style5.setLeftBorderColor(IndexedColors.GREEN.getIndex());
      style5.setBorderRight(XSSFCellStyle.BORDER_HAIR);
      style5.setRightBorderColor(IndexedColors.RED.getIndex());
      style5.setBorderTop(XSSFCellStyle.BIG_SPOTS);
      style5.setTopBorderColor(IndexedColors.CORAL.getIndex());
      cell.setCellStyle(style5);
      
      //Fill Colors
      //background color
      row = spreadsheet.createRow((short) 10 );
      cell = (XSSFCell) row.createCell((short) 1);
      
      XSSFCellStyle style6 = workbook.createCellStyle();
      style6.setFillBackgroundColor(HSSFColor.LEMON_CHIFFON.index );
      style6.setFillPattern(XSSFCellStyle.LESS_DOTS);
      style6.setAlignment(XSSFCellStyle.ALIGN_FILL);
      spreadsheet.setColumnWidth(1,8000);
      cell.setCellValue("FILL BACKGROUNG/FILL PATTERN");
      cell.setCellStyle(style6);
      
      //Foreground color
      row = spreadsheet.createRow((short) 12);
      cell = (XSSFCell) row.createCell((short) 1);
      
      XSSFCellStyle style7 = workbook.createCellStyle();
      style7.setFillForegroundColor(HSSFColor.BLUE.index);
      style7.setFillPattern( XSSFCellStyle.LESS_DOTS);
      style7.setAlignment(XSSFCellStyle.ALIGN_FILL);
      cell.setCellValue("FILL FOREGROUND/FILL PATTERN");
      cell.setCellStyle(style7);

      FileOutputStream out = new FileOutputStream(new File("cellstyle.xlsx"));
      workbook.write(out);
      out.close();
      System.out.println("cellstyle.xlsx written successfully");
   }
}

Сохраните приведенный выше код в файле с именем CellStyle.java , скомпилируйте и выполните его из командной строки следующим образом.

$javac CellStyle.java
$java CellStyle

Он создаст файл Excel с именем cellstyle.xlsx в вашем текущем каталоге и отобразит следующий вывод.

cellstyle.xlsx written successfully

Файл cellstyle.xlsx выглядит следующим образом.

CellStyle

Apache POI — Шрифты

В этой главе объясняется, как устанавливать разные шрифты, применять стили и отображать текст под разными углами в электронной таблице Excel.

Каждая система поставляется в комплекте с огромной коллекцией шрифтов, таких как Arial, Impact, Times New Roman и т. Д. При необходимости коллекция также может быть обновлена ​​новыми шрифтами. Точно так же существуют различные стили, в которых может отображаться шрифт, например, жирный, курсив, подчеркивание, вычеркивание и т. Д.

Шрифты и стили шрифтов

Следующий код используется для применения определенного шрифта и стиля к содержимому ячейки.

import java.io.File;
import java.io.FileOutputStream;

import org.apache.poi.hssf.util.HSSFColor;
import org.apache.poi.xssf.usermodel.XSSFCell;
import org.apache.poi.xssf.usermodel.XSSFCellStyle;
import org.apache.poi.xssf.usermodel.XSSFFont;
import org.apache.poi.xssf.usermodel.XSSFRow;
import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;

public class FontStyle {
   public static void main(String[] args)throws Exception {
      XSSFWorkbook workbook = new XSSFWorkbook(); 
      XSSFSheet spreadsheet = workbook.createSheet("Fontstyle");
      XSSFRow row = spreadsheet.createRow(2);

      //Create a new font and alter it.
      XSSFFont font = workbook.createFont();
      font.setFontHeightInPoints((short) 30);
      font.setFontName("IMPACT");
      font.setItalic(true);
      font.setColor(HSSFColor.BRIGHT_GREEN.index);

      //Set font into style
      XSSFCellStyle style = workbook.createCellStyle();
      style.setFont(font);

      // Create a cell with a value and set style to it.
      XSSFCell cell = row.createCell(1);
      cell.setCellValue("Font Style");
      cell.setCellStyle(style);
      
      FileOutputStream out = new FileOutputStream(new File("fontstyle.xlsx"));
      workbook.write(out);
      out.close();
      System.out.println("fontstyle.xlsx written successfully");
   }
}

Давайте сохраним приведенный выше код в файле с именем FontStyle.java . Скомпилируйте и выполните его из командной строки следующим образом.

$javac FontStyle.java
$java FontStyle

Он генерирует файл Excel с именем fontstyle.xlsx в вашем текущем каталоге и отображает следующий вывод в командной строке.

fontstyle.xlsx written successfully

Файл fontstyle.xlsx выглядит следующим образом.

Стиль шрифта

Направление текста

Здесь вы можете узнать, как установить направление текста под разными углами. Обычно содержимое ячейки отображается горизонтально, слева направо и под углом 00; однако вы можете использовать следующий код для поворота направления текста, если это необходимо.

import java.io.File;
import java.io.FileOutputStream;

import org.apache.poi.xssf.usermodel.XSSFCell;
import org.apache.poi.xssf.usermodel.XSSFCellStyle;
import org.apache.poi.xssf.usermodel.XSSFRow;
import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;

public class TextDirection {
   public static void main(String[] args)throws Exception {
      XSSFWorkbook workbook = new XSSFWorkbook(); 
      XSSFSheet spreadsheet = workbook.createSheet("Text direction");
      XSSFRow row = spreadsheet.createRow(2);
      XSSFCellStyle myStyle = workbook.createCellStyle();
      myStyle.setRotation((short) 0);
      XSSFCell cell = row.createCell(1);
      cell.setCellValue("0D angle");
      cell.setCellStyle(myStyle);

      //30 degrees
      myStyle = workbook.createCellStyle();
      myStyle.setRotation((short) 30);
      cell = row.createCell(3);
      cell.setCellValue("30D angle");
      cell.setCellStyle(myStyle);

      //90 degrees
      myStyle = workbook.createCellStyle();
      myStyle.setRotation((short) 90);
      cell = row.createCell(5);
      cell.setCellValue("90D angle");
      cell.setCellStyle(myStyle);

      //120 degrees
      myStyle = workbook.createCellStyle();
      myStyle.setRotation((short) 120);
      cell = row.createCell(7);
      cell.setCellValue("120D angle");
      cell.setCellStyle(myStyle);

      //270 degrees
      myStyle = workbook.createCellStyle();
      myStyle.setRotation((short) 270);
      cell = row.createCell(9);
      cell.setCellValue("270D angle");
      cell.setCellStyle(myStyle);

      //360 degrees
      myStyle = workbook.createCellStyle();
      myStyle.setRotation((short) 360);
      cell = row.createCell(12);
      cell.setCellValue("360D angle");
      cell.setCellStyle(myStyle);
      
      FileOutputStream out = new FileOutputStream(new File("textdirection.xlsx"));
      workbook.write(out);
      out.close();
      System.out.println("textdirection.xlsx written successfully");
   }
}

Сохраните приведенный выше код в файле TextDirectin.java , затем скомпилируйте и выполните его из командной строки следующим образом.

$javac TextDirection.java
$java TextDirection

Он скомпилируется и выполнится для создания файла Excel с именем textdirection.xlsx в вашем текущем каталоге и отобразит следующий вывод в командной строке.

textdirection.xlsx written successfully

Файл textdirection.xlsx выглядит следующим образом.

TextDirectin

Apache POI — Формула

Эта глава проведет вас через процесс применения различных формул к ячейкам с помощью Java-программирования. Основная цель приложения Excel — поддерживать числовые данные, применяя к ним формулы.

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

операция Синтаксис
Добавление нескольких номеров = SUM (Loc1: Locn) или = SUM (n1, n2,)
подсчитывать = COUNT (Loc1: Locn) или = COUNT (n1, n2,)
Сила двух чисел = POWER (Loc1, Loc2) или = POWER (число, мощность)
Макс нескольких номеров = MAX (Loc1: Locn) или = MAX (n1, n2,)
Товар = ПРОДУКТ (Loc1: Locn) или = ПРОДУКТ (n1, n2,)
Факториал = ФАКТ (Locn) или = ФАКТ (число)
Абсолютное число = ABS (Locn) или = ABS (число)
Сегодня дата = СЕГОДНЯ ()
Преобразует строчные = НИЖНЯЯ (Locn) или = НИЖНЯЯ (текст)
Квадратный корень = SQRT (locn) или = SQRT (число)

Следующий код используется для добавления формул в ячейку и их выполнения.

import java.io.File;
import java.io.FileOutputStream;

import org.apache.poi.xssf.usermodel.XSSFCell;
import org.apache.poi.xssf.usermodel.XSSFRow;
import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;

public class Formula {
   public static void main(String[] args)throws Exception {
      XSSFWorkbook workbook = new XSSFWorkbook(); 
      XSSFSheet spreadsheet = workbook.createSheet("formula");
      XSSFRow row = spreadsheet.createRow(1);
      XSSFCell cell = row.createCell(1);
      
      cell.setCellValue("A = ");
      cell = row.createCell(2);
      cell.setCellValue(2);
      row = spreadsheet.createRow(2);
      cell = row.createCell(1);
      cell.setCellValue("B = ");
      cell = row.createCell(2);
      cell.setCellValue(4);
      row = spreadsheet.createRow(3);
      cell = row.createCell(1);
      cell.setCellValue("Total = ");
      cell = row.createCell(2);
      
      // Create SUM formula
      cell.setCellType(XSSFCell.CELL_TYPE_FORMULA);
      cell.setCellFormula("SUM(C2:C3)");
      cell = row.createCell(3);
      cell.setCellValue("SUM(C2:C3)");
      row = spreadsheet.createRow(4);
      cell = row.createCell(1);
      cell.setCellValue("POWER =");
      cell=row.createCell(2);
      
      // Create POWER formula
      cell.setCellType(XSSFCell.CELL_TYPE_FORMULA);
      cell.setCellFormula("POWER(C2,C3)");
      cell = row.createCell(3);
      cell.setCellValue("POWER(C2,C3)");
      row = spreadsheet.createRow(5);
      cell = row.createCell(1);
      cell.setCellValue("MAX = ");
      cell = row.createCell(2);
      
      // Create MAX formula
      cell.setCellType(XSSFCell.CELL_TYPE_FORMULA);
      cell.setCellFormula("MAX(C2,C3)");
      cell = row.createCell(3);
      cell.setCellValue("MAX(C2,C3)");
      row = spreadsheet.createRow(6);
      cell = row.createCell(1);
      cell.setCellValue("FACT = ");
      cell = row.createCell(2);
      
      // Create FACT formula
      cell.setCellType(XSSFCell.CELL_TYPE_FORMULA);
      cell.setCellFormula("FACT(C3)");
      cell = row.createCell(3);
      cell.setCellValue("FACT(C3)");
      row = spreadsheet.createRow(7);
      cell = row.createCell(1);
      cell.setCellValue("SQRT = ");
      cell = row.createCell(2);
      
      // Create SQRT formula
      cell.setCellType(XSSFCell.CELL_TYPE_FORMULA);
      cell.setCellFormula("SQRT(C5)");
      cell = row.createCell(3);
      cell.setCellValue("SQRT(C5)");
      workbook.getCreationHelper().createFormulaEvaluator().evaluateAll();
      FileOutputStream out = new FileOutputStream(new File("formula.xlsx"));
      workbook.write(out);
      out.close();
      System.out.println("fromula.xlsx written successfully");
   }
}

Сохраните приведенный выше код как Formula.java, а затем скомпилируйте и выполните его из командной строки следующим образом.

$javac Formula.java
$java Formula

Он создаст файл Excel с именем Formula.xlsx в вашем текущем каталоге и отобразит следующий вывод в командной строке.

fromula.xlsx written successfully

Файл формула.xlsx выглядит следующим образом.

формула

Apache POI — Гиперссылка

В этой главе объясняется, как добавить гиперссылки на содержимое в ячейке. Обычно гиперссылки используются для доступа к любому веб-URL, электронной почте или внешнему файлу.

Следующий код показывает, как создавать гиперссылки на ячейки.

import java.io.File;
import java.io.FileOutputStream;

import org.apache.poi.common.usermodel.Hyperlink;
import org.apache.poi.hssf.util.HSSFColor;
import org.apache.poi.ss.usermodel.CreationHelper;
import org.apache.poi.xssf.usermodel.XSSFCell;
import org.apache.poi.xssf.usermodel.XSSFCellStyle;
import org.apache.poi.xssf.usermodel.XSSFFont;
import org.apache.poi.xssf.usermodel.XSSFHyperlink;
import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;

public class HyperlinkEX {
   public static void main(String[] args) throws Exception {
      XSSFWorkbook workbook = new XSSFWorkbook(); 
      XSSFSheet spreadsheet = workbook.createSheet("Hyperlinks");
      XSSFCell cell;
      CreationHelper createHelper = workbook.getCreationHelper();
      XSSFCellStyle hlinkstyle = workbook.createCellStyle();
      XSSFFont hlinkfont = workbook.createFont();
      hlinkfont.setUnderline(XSSFFont.U_SINGLE);
      hlinkfont.setColor(HSSFColor.BLUE.index);
      hlinkstyle.setFont(hlinkfont);

      //URL Link
      cell = spreadsheet.createRow(1).createCell((short) 1);
      cell.setCellValue("URL Link");
      XSSFHyperlink link = (XSSFHyperlink)createHelper.createHyperlink(Hyperlink.LINK_URL);
      link.setAddress("http://www.tutorialspoint.com/");
      cell.setHyperlink((XSSFHyperlink) link);
      cell.setCellStyle(hlinkstyle);

      //Hyperlink to a file in the current directory
      cell = spreadsheet.createRow(2).createCell((short) 1);
      cell.setCellValue("File Link");
      link = (XSSFHyperlink)createHelper.createHyperlink(Hyperlink.LINK_FILE);
      link.setAddress("cellstyle.xlsx");
      cell.setHyperlink(link);
      cell.setCellStyle(hlinkstyle);

      //e-mail link
      cell = spreadsheet.createRow(3).createCell((short) 1);
      cell.setCellValue("Email Link");
      link = (XSSFHyperlink)createHelper.createHyperlink(Hyperlink.LINK_EMAIL);
      link.setAddress("mailto:[email protected]?" + "subject = Hyperlink");
      cell.setHyperlink(link);
      cell.setCellStyle(hlinkstyle);
      
      FileOutputStream out = new FileOutputStream(new File("hyperlink.xlsx"));
      workbook.write(out);
      out.close();
      System.out.println("hyperlink.xlsx written successfully");
   }
}

Сохраните приведенный выше код как HyperlinkEX.java . Скомпилируйте и выполните его из командной строки следующим образом.

$javac HyperlinkEX.java
$java HyperlinkEX

Он создаст файл Excel с именем hyperlink.xlsx в вашем текущем каталоге и отобразит следующий вывод в командной строке.

hyperlink.xlsx written successfully

Файл hyperlink.xlsx выглядит следующим образом.

Гиперссылка

Apache POI — область печати

В этой главе объясняется, как установить область печати в электронной таблице. Обычная область печати находится слева направо в электронных таблицах Excel. Область печати может быть настроена в соответствии с вашими требованиями. Это означает, что вы можете распечатать определенный диапазон ячеек из всей электронной таблицы, настроить размер бумаги, распечатать содержимое с включенными линиями сетки и т. Д.

Следующий код используется для настройки области печати в электронной таблице.

import java.io.File;
import java.io.FileOutputStream;

import org.apache.poi.xssf.usermodel.XSSFPrintSetup;
import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;

public class PrintArea {
   public static void main(String[] args)throws Exception {
      XSSFWorkbook workbook = new XSSFWorkbook(); 
      XSSFSheet spreadsheet = workbook.createSheet("Print Area");

      //set print area with indexes
      workbook.setPrintArea(
         0, //sheet index
         0, //start column
         5, //end column
         0, //start row
         5 //end row
      );
      
      //set paper size
      spreadsheet.getPrintSetup().setPaperSize(XSSFPrintSetup.A4_PAPERSIZE);
      
      //set display grid lines or not
      spreadsheet.setDisplayGridlines(true);
      
      //set print grid lines or not
      spreadsheet.setPrintGridlines(true);
      
      FileOutputStream out = new FileOutputStream(new File("printarea.xlsx"));
      workbook.write(out);
      out.close();
      System.out.println("printarea.xlsx written successfully"); 
   }
}

Давайте сохраним приведенный выше код как PrintArea.java . Скомпилируйте и выполните его из командной строки следующим образом.

$javac PrintArea.java
$java PrintArea

Он создаст файл с именем printarea.xlsx в вашем текущем каталоге и отобразит следующий вывод в командной строке.

printarea.xlsx written successfully

В приведенном выше коде мы не добавили никаких значений ячеек. Следовательно, printarea.xlsx — это пустой файл. Но вы можете наблюдать на следующем рисунке, что предварительный просмотр печати показывает область печати с линиями сетки.

PrintArea

Apache POI — База данных

В этой главе объясняется, как библиотека POI взаимодействует с базой данных. С помощью JDBC вы можете извлечь данные из базы данных и вставить эти данные в электронную таблицу, используя библиотеку POI. Давайте рассмотрим базу данных MySQL для операций SQL.

Написать в Excel из базы данных

Предположим, что следующая таблица данных о сотрудниках emp_tbl должна быть получена из теста базы данных MySQL.

EMP ID EMP NAME DEG ОПЛАТА ТРУДА DEPT
1201 Гопал Технический менеджер 45000 ЭТО
1202 Маниша Корректор 45000 тестирование
1203 Masthanvali Технический писатель 45000 ЭТО
1204 Киран Админ 40000 HR
1205 Kranthi Оператор 30000 Администратор

Используйте следующий код для извлечения данных из базы данных и вставки их в электронную таблицу.

import java.io.File;
import java.io.FileOutputStream;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;

import org.apache.poi.xssf.usermodel.XSSFCell;
import org.apache.poi.xssf.usermodel.XSSFRow;
import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;

public class ExcelDatabase {
   public static void main(String[] args) throws Exception {
      Class.forName("com.mysql.jdbc.Driver");
      Connection connect = DriverManager.getConnection( 
         "jdbc:mysql://localhost:3306/test" , 
         "root" , 
         "root"
      );
      
      Statement statement = connect.createStatement();
      ResultSet resultSet = statement.executeQuery("select * from emp_tbl");
      XSSFWorkbook workbook = new XSSFWorkbook(); 
      XSSFSheet spreadsheet = workbook.createSheet("employe db");
      
      XSSFRow row = spreadsheet.createRow(1);
      XSSFCell cell;
      cell = row.createCell(1);
      cell.setCellValue("EMP ID");
      cell = row.createCell(2);
      cell.setCellValue("EMP NAME");
      cell = row.createCell(3);
      cell.setCellValue("DEG");
      cell = row.createCell(4);
      cell.setCellValue("SALARY");
      cell = row.createCell(5);
      cell.setCellValue("DEPT");
      int i = 2;

      while(resultSet.next()) {
         row = spreadsheet.createRow(i);
         cell = row.createCell(1);
         cell.setCellValue(resultSet.getInt("eid"));
         cell = row.createCell(2);
         cell.setCellValue(resultSet.getString("ename"));
         cell = row.createCell(3);
         cell.setCellValue(resultSet.getString("deg"));
         cell = row.createCell(4);
         cell.setCellValue(resultSet.getString("salary"));
         cell = row.createCell(5);
         cell.setCellValue(resultSet.getString("dept"));
         i++;
      }

      FileOutputStream out = new FileOutputStream(new File("exceldatabase.xlsx"));
      workbook.write(out);
      out.close();
      System.out.println("exceldatabase.xlsx written successfully");
   }
}

Давайте сохраним приведенный выше код как ExcelDatabase.java . Скомпилируйте и выполните его из командной строки следующим образом.

$javac ExcelDatabase.java
$java ExcelDatabase

Он создаст файл Excel с именем exceldatabase.xlsx в вашем текущем каталоге и отобразит следующий вывод в командной строке.

exceldatabase.xlsx written successfully

Файл exceldatabase.xlsx выглядит следующим образом.