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, таких как работа с листами, формулами, создание стилей ячеек путем заливки цветом и границами, шрифтами, верхними и нижними колонтитулами, формами, проверкой данных, изображениями, гиперссылками и многим другим.
Начало работы с 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
- Создайте новую книгу SXSSFWorkbook и сохраните в памяти 100 строк, лишние строки будут сброшены на диск.
- Создайте новый рабочий лист, используя метод createSheet().
- Вставьте данные в 2000 строк и 2000 ячеек, используя createRow(), createCell() и setCellValue("Ваши данные") внутри и вложенный цикл
- Сохраните файл с помощью FileOutputStream() и передайте имя выходного файла
- Запись в файл с использованием метода 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 для всех форматов файлов, поддерживаемых проектом.