Apache POI - Основные классы

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

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

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

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

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

HSSFWorkbook

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

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

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

HSSFWorkbook()

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

2

HSSFWorkbook(DirectoryNode directory, boolean preserveNodes)

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

3

HSSFWorkbook(DirectoryNode directory, POIFSFileSystem fs, boolean preserveNodes)

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

4

HSSFWorkbook(java.io.InputStream s)

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

5

HSSFWorkbook(java.io.InputStream s, boolean preserveNodes)

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

6

HSSFWorkbook(POIFSFileSystem fs)

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

7

HSSFWorkbook(POIFSFileSystem fs, boolean preserveNodes)

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

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

  • directory - Это каталог файловой системы POI, из которого выполняется обработка.

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

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

Note- Класс 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 file)

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

3

XSSFWorkbook(java.io.InputStream is)

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

4

XSSFWorkbook(java.lang.String path)

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

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

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

createSheet()

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

2

createSheet(java.lang.String sheetname)

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

3

createFont()

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

4

createCellStyle()

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

5

createFont()

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

6

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

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

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

Лист

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

HSSFSheet

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

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

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

HSSFSheet(HSSFWorkbook workbook)

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

2

HSSFSheet(HSSFWorkbook workbook, InternalSheet sheet)

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

XSSFSheet

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

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

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

XSSFSheet()

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

2

XSSFSheet(PackagePart part, PackageRelationship rel)

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

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

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

addMergedRegion(CellRangeAddress region)

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

2

autoSizeColumn(int column)

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

3

iterator()

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

4

addHyperlink(XSSFHyperlink hyperlink)

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

Для остальных методов этого класса см. Полный 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пакет. Он реализует интерфейс Row, поэтому может создавать строки в электронной таблице. Ниже перечислены методы и конструкторы этого класса.

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

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

createCell(int columnIndex)

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

2

setHeight(short height)

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

Для остальных методов этого класса перейдите по данной ссылке 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

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

3

CELL_TYPE_ERROR

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

4

CELL_TYPE_FORMULA

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

5

CELL_TYPE_NUMERIC

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

6

CELL_TYPE_STRING

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

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

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

setCellStyle(CellStyle style)

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

2

setCellType(int cellType)

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

3

setCellValue(boolean value)

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

4

setCellValue(java.util.Calendar value)

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

5

setCellValue(double value)

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

6

setCellValue(java.lang.String str)

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

7

setHyperlink(Hyperlink hyperlink)

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

Остальные методы и поля этого класса можно найти по следующей ссылке: 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

ALIGN_LEFT

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

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

Вертикальное выравнивание по верхнему краю

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

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

XSSFCellStyle(int cellXfId, int cellStyleXfId, StylesTable stylesSource, ThemesTable theme)

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

2

XSSFCellStyle(StylesTable stylesSource)

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

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

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

setAlignment(short align)

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

2

setBorderBottom(short border)

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

3

setBorderColor(XSSFCellBorder.BorderSide side, XSSFColor color)

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

4

setBorderLeft(Short border)

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

5

setBorderRight(short border)

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

6

setBorderTop(short border)

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

7

setFillBackgroundColor(XSSFColor color)

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

8

setFillForegroundColor(XSSFColor color)

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

9

setFillPattern(short fp)

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

10

setFont(Font font)

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

11

setRotation(short rotation)

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

12

setVerticalAlignment(short align)

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

Для остальных методов и полей этого класса перейдите по следующей ссылке: 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.АВТОМАТИЧЕСКИЙ
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()

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

Для остальных методов и вложенных классов перейдите по следующей ссылке: 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.

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

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

setAuto(boolean auto)

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

2

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.

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

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

setBold(boolean bold)

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

2

setColor(short color)

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

3

setColor(XSSFColor color)

Задает цвет шрифта в стандартном цветовом значении Alpha RGB.

4

setFontHeight(short height)

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

5

setFontName(java.lang.String name)

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

6

setItalic(boolean italic)

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

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

XSSFHyperlink

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

Поля

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

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

LINK_DOCUMENT

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

2

LINK_EMAIL

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

3

LINK_FILE

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

4

LINK_URL

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

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

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

setAddress(java.lang.String address)

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

Для остальных методов перейдите по следующей ссылке: 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 type)

Создает новую ссылку XSSFHyperlink.

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

XSSFPrintSetup

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

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

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

setLandscape(boolean ls)

Задает логическое значение, разрешающее или запрещающее альбомную печать.

2

setLeftToRight(boolean ltor)

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

3

setPaperSize(short size)

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

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