Apache POI-XSSF
Open Source Java API для Microsoft® файлів Excel XLSX
Створюйте, редагуйте та перетворюйте електронні таблиці Excel XLSX у формати файлів CSV і HTML за допомогою бібліотеки Java.
Що таке Apache POI-XSSF?
Apache POI-XSSF — це чиста реалізація Java формату файлів XLSX Excel 2007. 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 отримувати та посилатися на файли Apache POI Jar.
Залежність 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();
Java API для створення книги 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 означає Comma-Separated-Values і є дуже поширеним форматом, який використовується для обміну даними між багатьма програмами. По-перше, розробникам потрібно прочитати вхідний файл XLS за допомогою Apache POI XSSF API, а потім записати отриману інформацію у файли 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 забезпечив базове вилучення тексту для всіх підтримуваних проектом форматів файлів. Для розширених потреб вилучення тексту, включно з розширеним вилученням тексту (наприклад, форматуванням і стилями), разом із виведенням у форматі XML і HTML, Apache POI тісно співпрацює з Apache Tika, щоб надати аналізатори Tika на базі POI для всіх підтримуваних проектом форматів файлів.