1. Produkty
  2.   Arkusz
  3.   Java
  4.   Apache POI-XSSF 

Apache POI-XSSF 

 
 

Open Source Java API dla plików Microsoft® Excel XLSX

Twórz, edytuj i konwertuj arkusze kalkulacyjne Excel XLSX do formatów plików CSV i HTML za pomocą biblioteki Java.

Co to jest Apache POI-XSSF?

Apache POI-XSSF to czysta implementacja Java formatu pliku Excel 2007 XLSX. Interfejs API udostępnia procedury tworzenia, odczytywania, modyfikowania i zapisywania plików Excel XLSX. Zapewnia struktury niskiego poziomu dla osób o specjalnych potrzebach. Zapewnia również interfejs API modelu zdarzeń zapewniający wydajny dostęp tylko do odczytu, a także interfejs API pełnego modelu użytkownika do tworzenia, odczytywania i modyfikowania plików XLSX. Apache POI-XSSF zapewnia doskonałe wsparcie dla dodatkowych funkcji programu Excel, takich jak praca z arkuszami, formułami, tworzenie stylów komórek poprzez wypełnianie kolorów i obramowań, czcionki, nagłówki i stopki, kształty, sprawdzanie poprawności danych, obrazy, hiperłącza i wiele innych.

Previous Next

Pierwsze kroki z Apache POI XSSF

Przede wszystkim musisz mieć zainstalowany zestaw Java Development Kit (JDK) w swoim systemie. Jeśli już go masz, przejdź do strony pobieranie Apache POI, aby pobrać najnowszą stabilną wersję w archiwum. Wyodrębnij zawartość pliku ZIP w dowolnym katalogu, z którego wymagane biblioteki można połączyć z programem Java. To wszystko!

Odwoływanie się do punktów POI Apache w projekcie Java opartym na Maven jest jeszcze prostsze. Wszystko, czego potrzebujesz, to dodać następującą zależność do pliku pom.xml i pozwolić swojemu środowisku IDE pobierać i odwoływać się do plików Apache POI Jar.

Zależność 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>

Twórz duże arkusze kalkulacyjne Excel za pomocą interfejsu Java API

Apache POI XSSF oferuje mało pamięci dzięki interfejsowi API SXSSF do obsługi zapisywania dużych ilości danych w plikach MS Excel. Pozwala to na zapisywanie bardzo dużych plików bez wyczerpania pamięci, ponieważ tylko konfigurowalna część wierszy jest przechowywana w pamięci w danym momencie. POI-SXSSF zajmuje mało pamięci dzięki ograniczeniu dostępu do wierszy znajdujących się w przesuwanym oknie, podczas gdy XSSF zapewnia dostęp do wszystkich wierszy w dokumencie. Starsze wiersze, których nie ma już w oknie, stają się niedostępne, ponieważ są zapisywane na dysku. Możesz utworzyć duży plik Excela w java, wykonując następujące kroki

Utwórz duży plik Excela za pomocą Javy

  1. Utwórz nowy SXSSFWorkbook i zachowaj 100 wierszy w pamięci, przekroczone wiersze zostaną usunięte na dysk
  2. Utwórz nowy arkusz roboczy za pomocą metody createSheet()
  3. Wstaw dane w 2000 wierszy i 2000 komórek za pomocą funkcji createRow(), createCell() i setCellValue("Twoje dane") wewnątrz i zagnieżdżonej pętli
  4. Zapisz plik za pomocą FileOutputStream() i przekaż nazwę pliku wyjściowego
  5. Zapisz do pliku za pomocą metody SXSSFWorkbook.Write() i przekaż FileOutputStream jako parametr

Utwórz duży plik 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 do tworzenia skoroszytów programu Excel i dodawania arkuszy

Apache POI XSSF umożliwia programistom tworzenie nowego skoroszytu programu Excel w formacie pliku XLSX. Po utworzeniu skoroszytu przez programistów arkusze robocze są tworzone z istniejącego wystąpienia skoroszytu, a nowo utworzony arkusz jest automatycznie dodawany kolejno do skoroszytu.

Utwórz skoroszyt programu Excel i dodawaj arkusze

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

Konwertuj arkusz kalkulacyjny Excel na CSV i inny format pliku

Programiści i programiści Java mogą łatwo przekonwertować arkusz kalkulacyjny Excel na format pliku CSV za pomocą interfejsu API Apache POI XSSF. CSV oznacza wartości oddzielone przecinkami i jest bardzo popularnym formatem używanym do wymiany danych między wieloma aplikacjami. Po pierwsze, programiści muszą odczytać wejściowy plik XLS za pomocą API Apache POI XSSF, a następnie zapisać wyodrębnione informacje w plikach CSV.

Konwertuj XLSX na 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();

Ulepszenie XSSF dla nagłówków i stopek

Apache POI XSSF może obsługiwać nagłówki i stopki pierwszej strony, a także nagłówki i stopki parzyste/nieparzyste. Nagłówki i stopki są bardzo ważną częścią arkusza kalkulacyjnego Excel. Zwykle zawiera dodatkowe informacje, takie jak daty, numery stron, nazwisko autora i przypisy, które pomagają w uporządkowaniu i czytelności dłuższych dokumentów. Wszystkie flagi właściwości nagłówka/stopki mogą być obsługiwane w XSSF. Nieparzysty nagłówek i stopka to domyślny nagłówek i stopka. Jest wyświetlany na wszystkich stronach, które nie wyświetlają ani nagłówka pierwszej strony, ani nagłówka strony parzystej.

Scalanie komórek i wyodrębnianie tekstu w plikach Excel XLSX

Apache POI XSSF umożliwia programistom Java łączenie wielu komórek w jedną komórkę w arkuszu kalkulacyjnym Excel. Zawiera metody, które przyjmują indeksy komórek jako argument i łączą komórki w jedną dużą komórkę. Jedną z najbardziej wymagających funkcji jest możliwość wyodrębnienia tekstu z pliku XLSX i wykorzystania go zgodnie z własnymi potrzebami. Apache POI zapewnia podstawową ekstrakcję tekstu dla wszystkich formatów plików obsługiwanych przez projekt. W przypadku zaawansowanych potrzeb wyodrębniania tekstu, w tym ekstrakcji tekstu sformatowanego (takiego jak formatowanie i stylizacja), wraz z danymi wyjściowymi XML i HTML, Apache POI ściśle współpracuje z Apache Tika, aby dostarczać analizatory Tika oparte na POI dla wszystkich formatów plików obsługiwanych przez projekt.

 Polski