Возможно, вам приходилось сталкиваться с необходимостью вывода каких-либо данных в виде таблицы, используя Swing(Java). Самый естественный подход — использование JTable. Но это не самый удобный компонент, поскольку базовая версия не обладает должной гибкостью, а реализация своих способов вывода и отображения информации вызывает определенные трудности. Поэтому я хочу поделится с вами своим опытом работы с JTable и привести максимально доступные для понимания примеры. Наша цель — корректное отображение динамических данных в JTable. Заинтересованных читателей прошу под кат.
Разработчики JTable создали его по парадигме «модель-вид-контроллер». Другими словами, это разделило JTable на части таким образом, что одна отвечает за способы отображения информации, другая за внешний вид, третья за получение данных. Не будем углубляться в подробности, кому интересно, можете поискать в сети. Наша задача разобраться на примерах, как организовать вывод данных из какой-либо структуры в таблицу. За это отвечает модель таблицы.
Самый простой способ создания JTable — массив. Конструктору передается массив названий столбцов и массив значений. Все остальное таблица делает сама. Приведу пример.
В результате получится вот такое вот окно: Рассмотрим подробнее. Сначала создаются два массива. Один содержит заголовки, второй данные для таблицы. Массив с данными, в каждой строке должен содержать такое же количество элементов, как и массив с заголовками. Таблица создается конструктором, принимающим два элемента, в качестве которых выступают наши массивы. При этом таблица создает модель данных сама. Потом мы создаем JScrollPane, которая нужна для возможности прокрутки содержимого таблицы. Добавляем таблицу на объект JScrollPane, а его в наш контейнер. Отображаем окно. В принципе ничего сложного.
Но использование массивов для задания значений неудобно. Во первых данные могут лежать в БД, тогда будет необходимо их преобразовать в массив. Это неудобно и неэффективно. Кроме-того, при изменении данных, придется заново создавать таблицу, с новыми массивами.
Решением этой проблемы является создание своей модели таблицы. Модель таблицы можно создать разными способами. Можно пойти более сложным путем, создав класс, реализующий интерфейс TableModel. Тогда придется описывать все необходимые методы интерфейса и разбираться, как они работают. Кроме того, нужно будет хранить слушатели событий для модели данных. Мы рассмотрим более простой способ. Класс AbstractTableModel содержит реализацию всех методов интерфейсаTableModel за исключением getValueAt(), getRowCount() и getColumnCount(). Создадим свой класс, унаследовав его от AbstractTableModel и реализуем эти методы.
Данная публикация не является полным разбором или анализом (не покрывает пакет java.util.concurrent ). Это, скорее, справочник, который поможет начинающим разработчикам понять ключевые отличия одних коллекций от других, а более опытным разработчикам просто освежить материал в памяти.
Что такое Java Collections Framework?
Java Collection Framework — иерархия интерфейсов и их реализаций, которая является частью JDK и позволяет разработчику пользоваться большим количесвом структур данных из «коробки».
Базовые понятия
Интерфейс Map [doc]
Hashtable — реализация такой структуры данных, как хэш-таблица. Она не позволяет использовать null в качестве значения или ключа. Эта коллекция была реализована раньше, чем Java Collection Framework, но в последствии была включена в его состав. Как и другие коллекции из Java 1.0, Hashtable является синхронизированной (почти все методы помечены как synchronized ). Из-за этой особенности у неё имеются существенные проблемы с производительностью и, начиная с Java 1.2, в большинстве случаев рекомендуется использовать другие реализации интерфейса Map ввиду отсутствия у них синхронизации.
WeakHashMap — реализация хэш-таблицы, которая организована с использованием weak references. Другими словами, Garbage Collector автоматически удалит элемент из коллекции при следующей сборке мусора, если на ключ этого элеметна нет жёстких ссылок.
Интерфейс List [doc]
Реализации этого интерфейса представляют собой упорядоченные коллекции. Кроме того, разработчику предоставляется возможность доступа к элементам коллекции по индексу и по значению (так как реализации позволяют хранить дубликаты, результатом поиска по значению будет первое найденное вхождение).
ArrayList — как и Vector является реализацией динамического массива объектов. Позволяет хранить любые данные, включая null в качестве элемента. Как можно догадаться из названия, его реализация основана на обычном массиве. Данную реализацию следует применять, если в процессе работы с коллекцией предплагается частое обращение к элементам по индексу. Из-за особенностей реализации поиндексное обращение к элементам выполняется за константное время O(1). Но данную коллекцию рекомендуется избегать, если требуется частое удаление/добавление элементов в середину коллекции. Подробный анализ и описание можно почитать в этом хабратопике.
Интерфейс Set [doc]
Представляет собой неупорядоченную коллекцию, которая не может содержать дублирующиеся данные. Является программной моделью математического понятия «множество».
Интерфейс Queue [doc]
Этот интерфейс описывает коллекции с предопределённым способом вставки и извлечения элементов, а именно — очереди FIFO (first-in-first-out). Помимо методов, определённых в интерфейсе Collection, определяет дополнительные методы для извлечения и добавления элементов в очередь. Большинство реализаций данного интерфейса находится в пакете java.util.concurrent и подробно рассматриваются в данном обзоре.
Заключение
Java Collections Framework содержит большое количество различных структур данных, доступных в JDK «из коробки», которые в большинстве случаев покрывают все потребности при реализации логики приложения. Сравнение временных характеристик основных коллекций, которые зачастую используются в разработке приложений приведено в таблице:
При необходимости, разработчик может создать собственную реализацию, расширив или переопределив существующую логику, либо создав свою собственную реализацию подходящего интерфейса с нуля. Также существует некоторое количество готовых решений, которые являются альтернативой или дополнением к Java Collections Framework. Наиболее популярными являются Google Guava и Commons Collections.
Часто для создания отчетов в формате файлов 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.
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.
Этот учебник проведет вас через процесс работы с файлами 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 следующие:
JXL — это сторонний фреймворк, разработанный для Selenium, который поддерживает автоматизацию на основе данных в веб-браузерах (автоматическое обновление данных в веб-браузерах). Однако он также используется в качестве общей библиотеки поддержки для API JExcel, поскольку он обладает базовыми функциями для создания, чтения и записи электронных таблиц.
Основные функции заключаются в следующем —
JExcel
Основные характеристики заключаются в следующем —
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 версия «1.7.0_60»
Среда выполнения Java (TM) SE (сборка 1.7.0_60-b19)
Мы предполагаем, что читатели этого руководства установили 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
Установите JAVA_HOME в C: \ ProgramFiles \ java \ jdk1.7.0_60
Экспорт JAVA_HOME = / usr / local / java-current
Установите JAVA_HOME в C: \ ProgramFiles \ java \ jdk1.7.0_60
Экспорт JAVA_HOME = / usr / local / java-current
Добавьте полный путь расположения компилятора Java к системному пути.
Sr.No.
Платформа и описание
1
Добавьте строку «C: \ Program Files \ Java \ jdk1.7.0_60 \ bin» в конец системной переменной PATH.
Добавьте строку «C: \ Program Files \ Java \ jdk1.7.0_60 \ bin» в конец системной переменной PATH.
Шаг 3: Установите Apache POI Library
Загрузите последнюю версию Apache POI по адресу https://poi.apache.org/download.html и разархивируйте его содержимое в папку, из которой необходимые библиотеки могут быть связаны с вашей программой Java. Предположим, что файлы собраны в папке на диске C.
На следующих изображениях показаны каталоги и файловая структура внутри загруженной папки.
Добавьте полный путь к пяти банкам, как показано на изображении выше, к CLASSPATH.
Sr.No.
Платформа и описание
1
Добавьте следующие строки в конец пользовательской переменной
В этой главе описываются несколько классов и методов в API-интерфейсе Apache POI, которые имеют решающее значение для работы с файлами Excel с помощью программ на Java.
рабочая тетрадь
HSSFWorkbook
Конструкторы классов
Создает новый объект HSSFWorkbook с нуля.
HSSFWorkbook (каталог DirectoryNode, логические preserveNodes)
Создает новый объект HSSFWworkbook внутри определенного каталога.
HSSFWorkbook (каталог DirectoryNode, POIFSFileSystem fs, логические preserveNodes)
Учитывая объект POIFSFileSystem и определенный каталог в нем, он создает объект SSFWorkbook для чтения указанной книги.
HSSFWorkbook (java.io.InputStream s)
Создает новый объект HSSFWorkbook, используя входной поток.
Учитывая объект 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
Конструкторы классов
Создает новый объект XSSFworkbook с нуля.
XSSFWorkbook (файл java.io.File)
Создает объект XSSFWorkbook из заданного файла.
XSSFWorkbook (java.io.InputStream is)
Создает объект XSSFWorkbook, буферизуя весь входной поток в память и затем открывая для него объект OPCPackage.
XSSFWorkbook (путь java.lang.String)
Создает объект XSSFWorkbook с полным путем к файлу.
Создает новый объект XSSFworkbook с нуля.
XSSFWorkbook (файл java.io.File)
Создает объект XSSFWorkbook из заданного файла.
XSSFWorkbook (java.io.InputStream is)
Создает объект XSSFWorkbook, буферизуя весь входной поток в память и затем открывая для него объект OPCPackage.
XSSFWorkbook (путь java.lang.String)
Создает объект XSSFWorkbook с полным путем к файлу.
Методы класса
Создает лист XSSFS для этой книги, добавляет его на листы и возвращает представление высокого уровня.
createSheet (имя листа java.lang.String)
Создает новый лист для этой рабочей книги и возвращает представление высокого уровня.
Создает новый шрифт и добавляет его в таблицу шрифтов рабочей книги.
Создает новый XSSFCellStyle и добавляет его в таблицу стилей рабочей книги.
Создает новый шрифт и добавляет его в таблицу шрифтов рабочей книги.
setPrintArea (int sheetIndex, int startColumn, int endColumn, int startRow, int endRow)
Устанавливает область печати данного листа в соответствии с указанными параметрами.
Создает лист XSSFS для этой книги, добавляет его на листы и возвращает представление высокого уровня.
createSheet (имя листа java.lang.String)
Создает новый лист для этой рабочей книги и возвращает представление высокого уровня.
Создает новый шрифт и добавляет его в таблицу шрифтов рабочей книги.
Создает новый XSSFCellStyle и добавляет его в таблицу стилей рабочей книги.
Создает новый шрифт и добавляет его в таблицу шрифтов рабочей книги.
setPrintArea (int sheetIndex, int startColumn, int endColumn, int startRow, int endRow)
Устанавливает область печати данного листа в соответствии с указанными параметрами.
Остальные методы этого класса см. В полном документе API по адресу: https://poi.apache.org/apidocs/org/apache/poi/xssf/usermodel/XSSFWorkbook.html. для полного списка методов.
Простынь
HSSFSheet
Конструкторы классов
HSSFSheet (рабочая книга HSSFWorkbook)
Создает новый лист HSSFS, вызываемый HSSFWorkbook для создания листа с нуля.
HSSFSheet (рабочая книга HSSFWorkbook, лист InternalSheet)
Создает лист HSSFS, представляющий данный объект листа.
HSSFSheet (рабочая книга HSSFWorkbook)
Создает новый лист HSSFS, вызываемый HSSFWorkbook для создания листа с нуля.
HSSFSheet (рабочая книга HSSFWorkbook, лист InternalSheet)
Создает лист HSSFS, представляющий данный объект листа.
XSSFSheet
Конструкторы классов
Создает новый лист XSSFS — вызывается XSSFWorkbook для создания листа с нуля.
XSSFSheet (часть PackagePart, rel)
Создает XSSFSheet, представляющий данную часть пакета и отношения.
Создает новый лист XSSFS — вызывается XSSFWorkbook для создания листа с нуля.
XSSFSheet (часть PackagePart, rel)
Создает XSSFSheet, представляющий данную часть пакета и отношения.
Методы класса
addMergedRegion (CellRangeAddress region)
Добавляет объединенную область ячеек (следовательно, эти ячейки образуют единицу).
autoSizeColumn (столбец int)
Регулирует ширину столбца в соответствии с содержимым.
Этот метод является псевдонимом для rowIterator (), чтобы разрешить циклы foreach.
addHyperlink (гиперссылка XSSFHyperlink)
Регистрирует гиперссылку в коллекции гиперссылок на этом листе
addMergedRegion (CellRangeAddress region)
Добавляет объединенную область ячеек (следовательно, эти ячейки образуют единицу).
autoSizeColumn (столбец int)
Регулирует ширину столбца в соответствии с содержимым.
Этот метод является псевдонимом для rowIterator (), чтобы разрешить циклы foreach.
addHyperlink (гиперссылка XSSFHyperlink)
Регистрирует гиперссылку в коллекции гиперссылок на этом листе
Строка
XSSFRow
Методы класса
createCell (int columnIndex)
Создает новые ячейки в строке и возвращает ее.
setHeight (короткая высота)
Устанавливает высоту в коротких единицах.
createCell (int columnIndex)
Создает новые ячейки в строке и возвращает ее.
setHeight (короткая высота)
Устанавливает высоту в коротких единицах.
клетка
Ячейки могут иметь различные атрибуты, такие как пустое, числовое, дата, ошибка и т. Д. Ячейки должны иметь свои собственные номера (на основе 0) перед добавлением в строку.
XSSFCell
Сводка по полю
Ниже перечислены некоторые поля класса XSSFCell вместе с их описанием.
Sr.No.
Тип ячейки и описание
1
Представляет пустую ячейку
Представляет логическую ячейку (true или false)
Представляет значение ошибки в ячейке
Представляет результат формулы в ячейке
Представляет числовые данные в ячейке
Представляет строку (текст) в ячейке
Представляет пустую ячейку
Представляет логическую ячейку (true или false)
Представляет значение ошибки в ячейке
Представляет результат формулы в ячейке
Представляет числовые данные в ячейке
Представляет строку (текст) в ячейке
Методы класса
setCellStyle (стиль CellStyle)
Устанавливает стиль для ячейки.
setCellType (int cellType)
Устанавливает тип ячеек (числовой, формулы или строки).
setCellValue (логическое значение)
Устанавливает логическое значение для ячейки.
setCellValue (значение java.util.Calendar)
Устанавливает значение даты для ячейки.
setCellValue (двойное значение)
Устанавливает числовое значение для ячейки.
setCellValue (java.lang.String str)
Устанавливает строковое значение для ячейки.
setHyperlink (гиперссылка гиперссылки)
Назначает гиперссылку на эту ячейку.
setCellStyle (стиль CellStyle)
Устанавливает стиль для ячейки.
setCellType (int cellType)
Устанавливает тип ячеек (числовой, формулы или строки).
setCellValue (логическое значение)
Устанавливает логическое значение для ячейки.
setCellValue (значение java.util.Calendar)
Устанавливает значение даты для ячейки.
setCellValue (двойное значение)
Устанавливает числовое значение для ячейки.
setCellValue (java.lang.String str)
Устанавливает строковое значение для ячейки.
setHyperlink (гиперссылка гиперссылки)
Назначает гиперссылку на эту ячейку.
XSSFCellStyle
Сводка по полю
В следующей таблице перечислены несколько полей, которые унаследованы от интерфейса CellStyle.
Sr.No.
Поле и описание
1
Центр выровнять содержимое ячейки
Горизонтальное выравнивание по центру
Ячейка соответствует размеру контента
Подогнать содержимое ячейки по ширине
ВЫРОВНЯТЬ ПО ЛЕВОМУ КРАЮ
Выровнять по левому краю содержимое ячейки
Выровняйте содержимое ячейки вправо
Стиль ячейки с тире и точкой
Стиль ячейки с пунктирной рамкой
Стиль ячейки с пунктирной каймой
Стиль ячейки с толстой каймой
Стиль ячейки с тонкой каймой
Выровняйте содержимое ячейки по вертикали
Выровняйте содержимое ячейки по центру
Выровняйте и выровняйте содержимое ячейки по вертикали
Вертикальное выравнивание сверху
Центр выровнять содержимое ячейки
Горизонтальное выравнивание по центру
Ячейка соответствует размеру контента
Подогнать содержимое ячейки по ширине
ВЫРОВНЯТЬ ПО ЛЕВОМУ КРАЮ
Выровнять по левому краю содержимое ячейки
Выровняйте содержимое ячейки вправо
Стиль ячейки с тире и точкой
Стиль ячейки с пунктирной рамкой
Стиль ячейки с пунктирной каймой
Стиль ячейки с толстой каймой
Стиль ячейки с тонкой каймой
Выровняйте содержимое ячейки по вертикали
Выровняйте содержимое ячейки по центру
Выровняйте и выровняйте содержимое ячейки по вертикали
Вертикальное выравнивание сверху
Конструкторы классов
XSSFCellStyle (int cellXfId, int cellStyleXfId, StylesTable stylesSource, тема ThemesTable)
Создает стиль ячейки из поставляемых частей
XSSFCellStyle (StylesTable stylesSource)
Создает пустую ячейку Стиль
XSSFCellStyle (int cellXfId, int cellStyleXfId, StylesTable stylesSource, тема ThemesTable)
Создает стиль ячейки из поставляемых частей
XSSFCellStyle (StylesTable stylesSource)
Создает пустую ячейку Стиль
Методы класса
setAlignment (короткое выравнивание)
Устанавливает тип горизонтального выравнивания для ячейки
setBorderBottom (короткая граница)
Устанавливает тип границы для нижней границы ячейки
setBorderColor (сторона XSSFCellBorder.BorderSide, цвет XSSFColor)
Устанавливает цвет для выбранной границы
setBorderLeft (Короткая граница)
Устанавливает тип границы для левой границы ячейки
setBorderRight (короткая граница)
Устанавливает тип границы для правой границы ячейки
setBorderTop (короткая граница)
Устанавливает тип границы для верхней границы ячейки
setFillBackgroundColor (цвет XSSFColor)
Устанавливает цвет заливки фона, представленный в виде значения XSSFColor.
setFillForegroundColor (цвет XSSFColor)
Устанавливает цвет заливки переднего плана, представленный в виде значения XSSFColor.
setFillPattern (короткий фп)
Определяет информацию о заливке ячеек для заливки ячеек по шаблону и сплошному цвету.
setFont (шрифт шрифта)
Устанавливает шрифт для этого стиля.
setRotation (короткое вращение)
Устанавливает степень поворота для текста в ячейке.
setVerticalAlignment (короткое выравнивание)
Устанавливает тип вертикального выравнивания для ячейки.
setAlignment (короткое выравнивание)
Устанавливает тип горизонтального выравнивания для ячейки
setBorderBottom (короткая граница)
Устанавливает тип границы для нижней границы ячейки
setBorderColor (сторона XSSFCellBorder.BorderSide, цвет XSSFColor)
Устанавливает цвет для выбранной границы
setBorderLeft (Короткая граница)
Устанавливает тип границы для левой границы ячейки
setBorderRight (короткая граница)
Устанавливает тип границы для правой границы ячейки
setBorderTop (короткая граница)
Устанавливает тип границы для верхней границы ячейки
setFillBackgroundColor (цвет XSSFColor)
Устанавливает цвет заливки фона, представленный в виде значения XSSFColor.
setFillForegroundColor (цвет XSSFColor)
Устанавливает цвет заливки переднего плана, представленный в виде значения XSSFColor.
setFillPattern (короткий фп)
Определяет информацию о заливке ячеек для заливки ячеек по шаблону и сплошному цвету.
setFont (шрифт шрифта)
Устанавливает шрифт для этого стиля.
setRotation (короткое вращение)
Устанавливает степень поворота для текста в ячейке.
setVerticalAlignment (короткое выравнивание)
Устанавливает тип вертикального выравнивания для ячейки.
HSSFColor
Вложенные классы
Все вложенные классы этого класса являются статическими, и у каждого класса есть свой индекс. Эти вложенные цветовые классы используются для форматирования ячеек, такого как содержимое ячейки, границы, передний план и фон. Ниже перечислены некоторые из вложенных классов.
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
Этот метод используется для получения значения индекса вложенного класса.
Этот метод используется для получения значения индекса вложенного класса.
XSSFColor
Конструкторы классов
Создает новый экземпляр XSSFColor.
XSSFColor (byte [] rgb)
Создает новый экземпляр XSSFColor, используя RGB.
XSSFColor (java.awt.Color clr)
Создает новый экземпляр XSSFColor, используя класс Color из пакета awt.
Создает новый экземпляр XSSFColor.
XSSFColor (byte [] rgb)
Создает новый экземпляр XSSFColor, используя RGB.
XSSFColor (java.awt.Color clr)
Создает новый экземпляр XSSFColor, используя класс Color из пакета awt.
Методы класса
setAuto (логическое авто)
Устанавливает логическое значение, указывающее, что ctColor является автоматическим и системный ctColor является зависимым.
setIndexed (int indexed)
Устанавливает индексированное значение ctColor как системный ctColor.
setAuto (логическое авто)
Устанавливает логическое значение, указывающее, что ctColor является автоматическим и системный ctColor является зависимым.
setIndexed (int indexed)
Устанавливает индексированное значение ctColor как системный ctColor.
XSSFFont
Конструктор классов
Создает новый экземпляр XSSFont.
Создает новый экземпляр XSSFont.
Методы класса
setBold (логическое полужирное)
Устанавливает логическое значение для атрибута «полужирный».
setColor (короткий цвет)
Устанавливает индексированный цвет для шрифта.
setColor (XSSFColor color)
Устанавливает цвет для шрифта в стандартном альфа RGB цветовом значении.
setFontHeight (короткая высота)
Устанавливает высоту шрифта в пунктах.
setFontName (имя java.lang.String)
Устанавливает имя для шрифта.
setItalic (логический курсив)
Устанавливает логическое значение для свойства ‘italic’.
setBold (логическое полужирное)
Устанавливает логическое значение для атрибута «полужирный».
setColor (короткий цвет)
Устанавливает индексированный цвет для шрифта.
setColor (XSSFColor color)
Устанавливает цвет для шрифта в стандартном альфа RGB цветовом значении.
setFontHeight (короткая высота)
Устанавливает высоту шрифта в пунктах.
setFontName (имя java.lang.String)
Устанавливает имя для шрифта.
setItalic (логический курсив)
Устанавливает логическое значение для свойства ‘italic’.
XSSFHyperlink
Поля этого класса следующие. Здесь поля означают типы используемых гиперссылок.
Sr.No.
Поле и описание
1
Используется для ссылки на любой другой документ
Используется для ссылки на электронную почту
Используется для связи любого другого файла в любом формате
Используется для ссылки на веб-URL
Используется для ссылки на любой другой документ
Используется для ссылки на электронную почту
Используется для связи любого другого файла в любом формате
Используется для ссылки на веб-URL
Методы класса
setAddress (адрес java.lang.String)
setAddress (адрес java.lang.String)
XSSFCreationHelper
Методы класса
Создает экземпляр XSSFFormulaEvaluator, объект, который оценивает ячейки формулы.
createHyperlink (тип int)
Создает новый XSSFHyperlink.
Создает экземпляр XSSFFormulaEvaluator, объект, который оценивает ячейки формулы.
createHyperlink (тип int)
Создает новый XSSFHyperlink.
XSSFPrintSetup
Методы класса
setLandscape (логическое значение ls)
Устанавливает логическое значение, чтобы разрешить или заблокировать альбомную печать.
setLeftToRight (логический ltor)
Устанавливает, идти ли слева направо или сверху вниз при заказе во время печати.
setPaperSize (короткий размер)
Устанавливает размер бумаги.
setLandscape (логическое значение ls)
Устанавливает логическое значение, чтобы разрешить или заблокировать альбомную печать.
setLeftToRight (логический ltor)
Устанавливает, идти ли слева направо или сверху вниз при заказе во время печати.
setPaperSize (короткий размер)
Устанавливает размер бумаги.
Apache POI — рабочие книги
Здесь термин «Рабочая книга» означает файл Microsoft Excel. После завершения этой главы вы сможете создавать новые рабочие книги и открывать существующие рабочие книги с помощью Java-программы.
Создать пустую книгу
Следующая простая программа используется для создания пустой книги Microsoft Excel.
Если ваша системная среда сконфигурирована с библиотекой POI, она скомпилируется и выполнится, чтобы создать пустой файл Excel с именем createworkbook.xlsx в вашем текущем каталоге и отобразить следующий вывод в командной строке.
Открыть существующую книгу
Используйте следующий код, чтобы открыть существующую книгу.
Он будет скомпилирован и выполнен для генерации следующего вывода.
После открытия рабочей книги вы можете выполнять операции чтения и записи на ней.
Apache POI — электронные таблицы
В этой главе объясняется, как создать электронную таблицу и управлять ею с помощью Java. Электронная таблица — это страница в файле Excel; он содержит строки и столбцы с конкретными именами.
После прочтения этой главы вы сможете создать электронную таблицу и выполнить операции чтения с ней.
Создать электронную таблицу
Прежде всего, давайте создадим электронную таблицу, используя ссылочные классы, которые обсуждались в предыдущих главах. Следуя предыдущей главе, сначала создайте рабочую книгу, а затем мы можем продолжить и создать лист.
Следующий фрагмент кода используется для создания электронной таблицы.
Строки в таблице
Электронные таблицы имеют сетку. Строки и столбцы обозначены конкретными именами. Столбцы обозначены алфавитами, а строки — номерами.
Следующий фрагмент кода используется для создания строки.
Написать в электронную таблицу
Давайте рассмотрим пример данных о сотрудниках. Здесь данные о сотрудниках приведены в табличной форме.
Emp Id
Имя Эмпайра
обозначение
TP01
Гопал
Технический менеджер
TP02
Маниша
Proof Reader
Tp03
Masthan
Технический писатель
Tp04
Сатиш
Технический писатель
Tp05
Кришна
Технический писатель
Следующий код используется для записи вышеуказанных данных в электронную таблицу.
Он скомпилируется и выполнится для создания файла Excel с именем Writesheet.xlsx в вашем текущем каталоге, и вы получите следующий вывод в командной строке.
Файл Writesheet.xlsx выглядит следующим образом.
Читать из таблицы
Давайте рассмотрим вышеупомянутый файл Excel с именем Writesheet.xslx в качестве входных данных. Соблюдайте следующий код; он используется для чтения данных из электронной таблицы.
Если ваша системная среда сконфигурирована с библиотекой POI, она будет скомпилирована и выполнена для генерации следующего вывода в командной строке.
Apache POI — Клетки
Любые данные, которые вы вводите в электронную таблицу, всегда хранятся в ячейке. Мы используем метки строк и столбцов, чтобы идентифицировать ячейку. В этой главе описывается, как манипулировать данными в ячейках электронной таблицы с помощью Java-программирования.
Создать ячейку
Вам нужно создать строку перед созданием ячейки. Ряд — это не что иное, как набор ячеек.
Следующий фрагмент кода используется для создания ячейки.
Типы клеток
Тип ячейки указывает, может ли ячейка содержать строки, числовые значения или формулы. Строковая ячейка не может содержать числовые значения, а числовая ячейка не может содержать строки. Ниже приведены типы ячеек, их значения и синтаксис типов.
Тип значения ячейки
Введите Синтаксис
Пустое значение ячейки
XSSFCell.CELL_TYPE_BLANK
Булево значение ячейки
XSSFCell.CELL.TYPE_BOOLEAN
Значение ячейки ошибки
XSSFCell.CELL_TYPE_ERROR
Числовое значение ячейки
XSSFCell.CELL_TYPE_NUMERIC
Строковое значение ячейки
XSSFCell.CELL_TYPE_STRING
Следующий код используется для создания различных типов ячеек в электронной таблице.
Если ваша система сконфигурирована с библиотекой POI, то она скомпилируется и выполнится, чтобы сгенерировать файл Excel с именем typesofcells.xlsx в вашем текущем каталоге и отобразить следующий вывод.
Файл typesofcells.xlsx выглядит следующим образом.
Cell Styles
Здесь вы можете узнать, как выполнять форматирование ячеек и применять различные стили, такие как объединение смежных ячеек, добавление границ, настройка выравнивания ячеек и заливка цветами.
Следующий код используется для применения различных стилей к ячейкам с помощью Java-программирования.
Он создаст файл Excel с именем cellstyle.xlsx в вашем текущем каталоге и отобразит следующий вывод.
Файл cellstyle.xlsx выглядит следующим образом.
Apache POI — Шрифты
В этой главе объясняется, как устанавливать разные шрифты, применять стили и отображать текст под разными углами в электронной таблице Excel.
Каждая система поставляется в комплекте с огромной коллекцией шрифтов, таких как Arial, Impact, Times New Roman и т. Д. При необходимости коллекция также может быть обновлена новыми шрифтами. Точно так же существуют различные стили, в которых может отображаться шрифт, например, жирный, курсив, подчеркивание, вычеркивание и т. Д.
Шрифты и стили шрифтов
Следующий код используется для применения определенного шрифта и стиля к содержимому ячейки.
Он генерирует файл Excel с именем fontstyle.xlsx в вашем текущем каталоге и отображает следующий вывод в командной строке.
Файл fontstyle.xlsx выглядит следующим образом.
Направление текста
Здесь вы можете узнать, как установить направление текста под разными углами. Обычно содержимое ячейки отображается горизонтально, слева направо и под углом 00; однако вы можете использовать следующий код для поворота направления текста, если это необходимо.
Он скомпилируется и выполнится для создания файла Excel с именем textdirection.xlsx в вашем текущем каталоге и отобразит следующий вывод в командной строке.
Файл textdirection.xlsx выглядит следующим образом.
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 (число)
Следующий код используется для добавления формул в ячейку и их выполнения.
Сохраните приведенный выше код как Formula.java, а затем скомпилируйте и выполните его из командной строки следующим образом.
Он создаст файл Excel с именем Formula.xlsx в вашем текущем каталоге и отобразит следующий вывод в командной строке.
Файл формула.xlsx выглядит следующим образом.
Apache POI — Гиперссылка
В этой главе объясняется, как добавить гиперссылки на содержимое в ячейке. Обычно гиперссылки используются для доступа к любому веб-URL, электронной почте или внешнему файлу.
Следующий код показывает, как создавать гиперссылки на ячейки.
Он создаст файл Excel с именем hyperlink.xlsx в вашем текущем каталоге и отобразит следующий вывод в командной строке.
Файл hyperlink.xlsx выглядит следующим образом.
Apache POI — область печати
В этой главе объясняется, как установить область печати в электронной таблице. Обычная область печати находится слева направо в электронных таблицах Excel. Область печати может быть настроена в соответствии с вашими требованиями. Это означает, что вы можете распечатать определенный диапазон ячеек из всей электронной таблицы, настроить размер бумаги, распечатать содержимое с включенными линиями сетки и т. Д.
Следующий код используется для настройки области печати в электронной таблице.
Он создаст файл с именем printarea.xlsx в вашем текущем каталоге и отобразит следующий вывод в командной строке.
В приведенном выше коде мы не добавили никаких значений ячеек. Следовательно, printarea.xlsx — это пустой файл. Но вы можете наблюдать на следующем рисунке, что предварительный просмотр печати показывает область печати с линиями сетки.
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
Администратор
Используйте следующий код для извлечения данных из базы данных и вставки их в электронную таблицу.