Apache POI-XSSF 

 
 

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 като работа с листове, формули, създаване на стилове на клетки чрез попълване на цветове и граници, шрифтове, горни и долни колонтитули, форми, валидации на данни, изображения, хипервръзки и много други.

Previous Next

Първи стъпки с Apache POI XSSF

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

Позоваването на Apache POI във вашия базиран на Maven Java проект е още по-лесно. Всичко, от което се нуждаете, е да добавите следната зависимост във вашия 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

  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();

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 предостави основно извличане на текст за всички поддържани от проекта файлови формати. За усъвършенствани нужди от извличане на текст, включително извличане на Rich Text (като форматиране и стил), заедно с XML и HTML изход, Apache POI работи в тясно сътрудничество с Apache Tika, за да достави Tika Parsers, захранвани от POI, за всички файлови формати, поддържани от проекта.

 Български