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.
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
- Utwórz nowy SXSSFWorkbook i zachowaj 100 wierszy w pamięci, przekroczone wiersze zostaną usunięte na dysk
- Utwórz nowy arkusz roboczy za pomocą metody createSheet()
- 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
- Zapisz plik za pomocą FileOutputStream() i przekaż nazwę pliku wyjściowego
- 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.