Apache POI-XSSF 

 
 

API Java с открытым исходным кодом для файлов Microsoft® Excel XLSX

Создавайте, редактируйте и конвертируйте электронные таблицы Excel XLSX в форматы файлов CSV и HTML с помощью библиотеки Java.

Что такое Apache POI-XSSF?

Apache POI-XSSF — это чистая Java-реализация формата файлов Excel 2007 XLSX. API предоставляет процедуры для создания, чтения, изменения и записи файлов Excel XLSX. Он предоставляет низкоуровневые структуры для людей с особыми потребностями. Он также предоставляет API модели событий для эффективного доступа только для чтения, а также API полной пользовательской модели для создания, чтения и изменения файлов XLSX. Apache POI-XSSF обеспечивает отличную поддержку дополнительных функций Excel, таких как работа с листами, формулами, создание стилей ячеек путем заливки цветом и границами, шрифтами, верхними и нижними колонтитулами, формами, проверкой данных, изображениями, гиперссылками и многим другим.

Previous Next

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

Прежде всего, в вашей системе должен быть установлен 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-ooxml</artifactId>
    <version>4.1.0</version>
</dependency>

Создавайте большие электронные таблицы Excel с помощью Java API

Apache POI XSSF предлагает малое потребление памяти через SXSSF API для обработки больших объемов данных, записываемых в файлы MS Excel. Это позволяет записывать очень большие файлы без нехватки памяти, поскольку в любой момент времени в памяти хранится только настраиваемая часть строк. POI-SXSSF обеспечивает низкий объем памяти, ограничивая доступ к строкам, которые находятся в скользящем окне, в то время как XSSF предоставляет доступ ко всем строкам в документе. Старые строки, которых больше нет в окне, становятся недоступными, так как записываются на диск. Вы можете создать большой файл Excel в Java, выполнив следующие действия.

Создайте большой файл Excel с помощью Java

  1. Создайте новую книгу SXSSFWorkbook и сохраните в памяти 100 строк, лишние строки будут сброшены на диск.
  2. Создайте новый рабочий лист, используя метод createSheet().
  3. Вставьте данные в 2000 строк и 2000 ячеек, используя createRow(), createCell() и setCellValue("Ваши данные") внутри и вложенный цикл
  4. Сохраните файл с помощью FileOutputStream() и передайте имя выходного файла
  5. Запись в файл с использованием метода SXSSFWorkbook.Write() и передача FileOutputStream в качестве параметра

Создайте большой файл Excel

// create a new SXSSFWorkbook
SXSSFWorkbook wb = new SXSSFWorkbook(100);
Sheet sh = wb.createSheet();
// insert 2000 rows
for(int rownum = 0; rownum < 2000; rownum++){
    Row row = sh.createRow(rownum);
    // insert data in 20000 cells
    for(int cellnum = 0; cellnum < 10; cellnum++){
    Cell cell = row.createCell(cellnum);
    cell.setCellValue("Row Number: "+ rownum + " Cell Number: "+ cellnum);
    }
}
// save file
FileOutputStream out = new FileOutputStream("LargeDcument.xlsx");
wb.write(out);
out.close();

API-интерфейсы Java для создания книг Excel и добавления листов

Apache POI XSSF позволяет программистам создавать новую книгу Excel в формате файла XLSX. Как только разработчики создают рабочую книгу, рабочие листы создаются из существующего экземпляра рабочей книги, а вновь созданный лист автоматически последовательно добавляется в рабочую книгу.

Создать книгу Excel и добавить листы

// create a new XLSX file
Workbook workbook = new XSSFWorkbook();
OutputStream outputStream = new FileOutputStream("CreateXlsx.xlsx");
// create a new sheet
Sheet sheet = workbook.createSheet("Apache POI XSSF");
// create a new sheet
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);

Преобразование электронной таблицы Excel в CSV и другой формат файла

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

Конвертировать XLSX в CSV

// Open and existing XLSX file
FileInputStream fileInStream = new FileInputStream("LargeDocument.xlsx");
XSSFWorkbook workBook = new XSSFWorkbook(fileInStream);
XSSFSheet selSheet = workBook.getSheetAt(0);
// Loop through all the rows
Iterator rowIterator = selSheet.iterator();
while (rowIterator.hasNext()) {
    Row row = rowIterator.next();
    // Loop through all rows and add ","
    Iterator cellIterator = row.cellIterator();
    StringBuffer stringBuffer = new StringBuffer();
    while (cellIterator.hasNext()) {
    Cell cell = cellIterator.next();
    if (stringBuffer.length() != 0) {
        stringBuffer.append(",");
    }
    stringBuffer.append(cell.getStringCellValue());
    }
    System.out.println(stringBuffer.toString());
}
workBook.close();

Расширение XSSF для верхних и нижних колонтитулов

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

Объединение ячеек и извлечение текста внутри файлов Excel XLSX

Apache POI XSSF предоставляет возможность, которая позволяет Java-программистам объединять несколько ячеек в одну ячейку электронной таблицы Excel. Он включает методы, которые принимают индексы ячеек в качестве аргумента и объединяют ячейки в одну большую ячейку. Одной из самых требовательных функций является возможность извлекать текст из файла XLSX и использовать его в соответствии с вашими потребностями. Apache POI обеспечивает базовое извлечение текста для всех форматов файлов, поддерживаемых проектом. Для расширенных потребностей извлечения текста, включая извлечение Rich Text (например, форматирование и стиль), а также для вывода XML и HTML, Apache POI тесно сотрудничает с Apache Tika, чтобы предоставить парсеры Tika на основе POI для всех форматов файлов, поддерживаемых проектом.

 Русский