Apache POI HSSF

 
 

Библиотека Java для двоичных файлов Microsoft Excel

Java API с открытым исходным кодом позволяет читать, записывать и преобразовывать электронные таблицы Excel XLS.

Apache POI HSSF — это чистая Java-реализация формата файлов Excel '97 (-2007) (BIFF8). Бесплатный API с открытым исходным кодом предоставляет функции для создания, чтения, изменения и записи электронных таблиц Excel XLS. Разработчики, заинтересованные только в чтении данных электронных таблиц, могут использовать API модели событий для удовлетворения своих потребностей. Для изменения данных электронной таблицы можно использовать API пользовательской модели. Важно знать, что система пользовательской модели требует больше памяти, чем низкоуровневая пользовательская модель событий, но имеет главное преимущество, состоящее в том, что с ней гораздо проще работать.

Apache POI HSSF обеспечивает отличную поддержку дополнительных функций Excel, таких как работа с листами и формулами, создание стилей ячеек путем заливки цветом и границами, шрифтами, верхними и нижними колонтитулами, формами, проверкой данных, изображениями, гиперссылками и многим другим.

Previous Next

Начало работы с Apache POI HSSF

Прежде всего, в вашей системе должен быть установлен Java Development Kit (JDK). Если он у вас уже есть, перейдите на страницу загрузки Apache POI, чтобы получить последнюю стабильную версию в архиве. Извлеките содержимое ZIP-файла в любой каталог, откуда необходимые библиотеки могут быть связаны с вашей программой Java. Это все!

Ссылка на Apache POI в вашем Java-проекте на основе Maven еще проще. Все, что вам нужно, это добавить следующую зависимость в ваш pom.xml и позволить вашей среде IDE извлекать и ссылаться на файлы Jar Apache POI.

Зависимость Apache POI от Maven

<!-- https://mvnrepository.com/artifact/org.apache.poi/poi -->
<dependency>
  <groupId>org.apache.poi</groupId>
  <artifactId>poi-scratchpad</artifactId>
  <version>4.0.0</version>
</dependency>

Создайте книгу Excel и добавьте листы через Java API

Библиотека Apache POI HSSF с открытым исходным кодом позволяет разработчикам программного обеспечения создавать новую книгу Microsoft Excel в формате файла XLS. Разработчики могут легко добавлять в коллекцию новые листы из существующего экземпляра Workbook. 

Создайте новый XLS-файл

// create a new workbook
Workbook workbook = new HSSFWorkbook();
OutputStream outputStream = new FileOutputStream("CreateXls.xls");
// create a new sheet
Sheet sheet = workbook.createSheet("Apache POI XSSF");
// create a new row
Row row = sheet.createRow(1);
// create a new cell
Cell cell = row.createCell(1);
// set cell value
cell.setCellValue("File Format Developer Guide");
// save file
workbook.write(outputStream);

Java API для чтения и записи в существующий файл Excel 

Apache POI HSSF позволяет разработчикам программного обеспечения получать доступ и считывать данные из существующей книги Microsoft Excel. Чтение в файле очень просто, сначала создайте экземпляр книги из листа Excel и перейдите на нужный лист. Затем увеличьте номер строки и выполните итерацию по всем ячейкам в строке. Повторяйте эти шаги, пока не будут прочитаны все данные. Apache POI HSSF также предоставляет функции для изменения существующего файла Excel.

Чтение содержимого ячейки через Java

// open xls file
InputStream inputStream = new FileInputStream("document.xls");
Workbook workbook = WorkbookFactory.create(inputStream);
// get sheet
Sheet sheet = workbook.getSheetAt(0);
// get row
Row row = sheet.getRow(1);
// get cell
Cell cell = row.getCell(1);
// display data
System.out.println(cell);

Рисовать фигуры и добавлять изображения в электронную таблицу Excel

Apache POI-HSSF предоставляет функции для рисования фигур в электронной таблице Excel. Он поддерживает рисование фигур с помощью инструментов рисования Microsoft Office. Рисуйте различные фигуры, такие как овал, линия, прямоугольник, и устанавливайте любые другие стили фигур. В Apache POI изображения являются частью чертежа, в настоящее время поддерживаются типы изображений PNG, JPG и DIB.

Нарисовать прямоугольник в XLS через Java

// create a new workbook
Workbook workbook = new HSSFWorkbook();
OutputStream outputStream = new FileOutputStream("DrawShape.xls");
// create a new sheet
Sheet sheet = workbook.createSheet("Apache POI XSSF");
// create a new row
Row row = sheet.createRow(1);
// create a new cell
Cell cell = row.createCell(1);
// create rectangle shape
HSSFPatriarch patriarch = (HSSFPatriarch) sheet.createDrawingPatriarch();
HSSFClientAnchor a = new HSSFClientAnchor(0, 0, 1023, 254, (short) 1, 0, (short) 1, 0);
HSSFSimpleShape shape = patriarch.createSimpleShape(a);
shape.setShapeType(HSSFSimpleShape.OBJECT_TYPE_RECTANGLE);
// save file
workbook.write(outputStream);

Обработка шрифтов и объединение ячеек таблиц XLS

Apache POI-HSSF предоставляет методы, позволяющие программистам Java обрабатывать шрифты в электронных таблицах Excel. Мы можем создать шрифт, задать цвет, установить размер и т. д. Font — это интерфейс, предоставляющий методы для обработки шрифта. Apache POI-HSSF также позволяет разработчикам объединять ячейки в одну ячейку. Для этого он предоставляет методы, которые принимают индексы ячеек в качестве аргумента и объединяют ячейки в одну большую ячейку.

Установка шрифта для электронной таблицы XLS через Java

// create a new XLS file
OutputStream outfile = new FileOutputStream("SetFont.xls");
Workbook wb = new HSSFWorkbook();
// create a new sheet
Sheet sheet = wb.createSheet("Apache POI XSSF");
// create a new row
Row row = sheet.createRow(1);
// create a new cell
Cell cell = row.createCell(1);
// set style
CellStyle style = wb.createCellStyle();
// set text
cell.setCellValue("File Format Developer Guide");
// set font settings
Font font = wb.createFont();
font.setFontHeightInPoints((short) 14);
font.setFontName("Arial");
font.setItalic(true);
font.setBold(true);
// apply font
style.setFont(font);
cell.setCellStyle(style);
// save
wb.write(outfile);
 Русский