![](https://products-qa.fileformat.com/hu/spreadsheet/java/apache-poi-hssf/header-image.png)
Apache POI HSSF
Java-könyvtár Microsoft Excel bináris fájlokhoz
A nyílt forráskódú Java API lehetővé teszi az Excel XLS táblázatok olvasását, írását és konvertálását.
Az Apache POI HSSF az Excel '97(-2007) fájlformátum (BIFF8) tiszta Java implementációja. Az ingyenes nyílt forráskódú API szolgáltatásokat biztosít Excel XLS táblázatok létrehozásához, olvasásához, módosításához és írásához. Azok a fejlesztők, akik csak a táblázatadatok olvasása iránt érdeklődnek, az eseménymodell API-t használhatják igényeik kielégítésére. A táblázat adatainak módosításához a felhasználói modell API használható. Fontos tudni, hogy a felhasználói modellrendszer nagyobb memóriaterülettel rendelkezik, mint az alacsony szintű eseményfelhasználói modell, de megvan a fő előnye, hogy sokkal egyszerűbb vele dolgozni.
Az Apache POI HSSF nagyszerű támogatást nyújt a további Excel funkciókhoz, mint például a munkalapokkal és képletekkel való munkavégzés, a cellastílusok létrehozása színek és szegélyek kitöltésével, betűtípusok, fejlécek és láblécek, alakzatok, adatellenőrzések, képek, hiperhivatkozások és még sok más.
Az Apache POI HSSF használatának megkezdése
Először is telepítenie kell a Java Development Kit-et (JDK) a rendszerére. Ha már rendelkezik vele, lépjen az Apache POI letöltési oldalára, hogy a legújabb stabil kiadást egy archívumban kapja meg. Csomagolja ki a ZIP fájl tartalmát bármely olyan könyvtárból, ahonnan a szükséges könyvtárak a Java programhoz kapcsolhatók. Ez minden!
Az Apache POI hivatkozás a Maven-alapú Java projektben még egyszerűbb. Mindössze annyit kell tennie, hogy hozzáadja a következő függőséget a pom.xml fájlhoz, és hagyja, hogy az IDE letöltse és hivatkozzon az Apache POI Jar fájlokra.
Apache POI Maven függőség
<!-- https://mvnrepository.com/artifact/org.apache.poi/poi -->
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-scratchpad</artifactId>
<version>4.0.0</version>
</dependency>
Excel-munkafüzet létrehozása és munkalapok hozzáadása Java API-kon keresztül
Az Apache POI HSSF nyílt forráskódú könyvtára lehetővé teszi a szoftverfejlesztők számára, hogy új Microsoft Excel munkafüzetet hozzanak létre XLS fájlformátumban. A fejlesztők könnyen hozzáadhatnak új munkalapokat a gyűjteményhez a munkafüzet egy meglévő példányából.
Hozzon létre egy új XLS fájlt
// create a new workbook
Workbook workbook = new HSSFWorkbook();
OutputStream outputStream = new FileOutputStream("CreateXls.xls");
// create a new sheet
Sheet sheet = workbook.createSheet("Apache POI XSSF");
// create a new row
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);
Java API meglévő Excel-fájl olvasásához és írásához
Az Apache POI HSSF lehetővé teszi a szoftverfejlesztők számára, hogy elérjék és kiolvassák a meglévő Microsoft Excel munkafüzet adatait. A fájl olvasása nagyon egyszerű, először hozzon létre egy munkafüzet példányt egy Excel munkalapból, és lépjen a kívánt lapra. Ezután növelje a sor számát, és ismételje meg az összes cellát egy sorban. Ismételje meg ezeket a lépéseket, amíg az összes adatot be nem olvasta. Az Apache POI HSSF funkciókat is biztosít a meglévő Excel-fájlok módosításához.
Olvassa el a cellatartalmat Java-n keresztül
// open xls file
InputStream inputStream = new FileInputStream("document.xls");
Workbook workbook = WorkbookFactory.create(inputStream);
// get sheet
Sheet sheet = workbook.getSheetAt(0);
// get row
Row row = sheet.getRow(1);
// get cell
Cell cell = row.getCell(1);
// display data
System.out.println(cell);
Alakzatok rajzolása és képek hozzáadása az Excel-táblázathoz
Az Apache POI-HSSF funkciókat biztosít alakzatok rajzolásához az Excel-táblázatban. Támogatja az alakzatok rajzolását a Microsoft Office rajzeszközeivel. Rajzoljon különféle alakzatokat, például oválist, vonalat, téglalapot, és állítson be bármilyen más alakstílust. Az Apache POI-ban a képek a rajz részét képezik, jelenleg a PNG, JPG és DIB típusú képeket támogatják.
Rajzolj téglalapot XLS-ben Java-n keresztül
// create a new workbook
Workbook workbook = new HSSFWorkbook();
OutputStream outputStream = new FileOutputStream("DrawShape.xls");
// create a new sheet
Sheet sheet = workbook.createSheet("Apache POI XSSF");
// create a new row
Row row = sheet.createRow(1);
// create a new cell
Cell cell = row.createCell(1);
// create rectangle shape
HSSFPatriarch patriarch = (HSSFPatriarch) sheet.createDrawingPatriarch();
HSSFClientAnchor a = new HSSFClientAnchor(0, 0, 1023, 254, (short) 1, 0, (short) 1, 0);
HSSFSimpleShape shape = patriarch.createSimpleShape(a);
shape.setShapeType(HSSFSimpleShape.OBJECT_TYPE_RECTANGLE);
// save file
workbook.write(outputStream);
XLS-táblázatok betűtípusainak kezelése és celláinak egyesítése
Az Apache POI-HSSF olyan módszereket biztosít, amelyek lehetővé teszik a Java programozók számára, hogy kezeljék a betűtípusokat Excel-táblázatokban. Létrehozhatjuk a betűtípust, beállíthatjuk a színt, beállíthatjuk a méretet stb. A Font egy olyan felület, amely módszereket ad a betűtípus kezelésére. Az Apache POI-HSSF azt is lehetővé teszi a fejlesztők számára, hogy egyesítsék a cellákat egyetlen cellává. Ehhez olyan módszereket biztosít, amelyek a cellaindexeket veszik argumentumként, és egyesítik a cellákat egyetlen nagy cellává.
Állítsa be a betűtípust az XLS-táblázathoz Java segítségével
// create a new XLS file
OutputStream outfile = new FileOutputStream("SetFont.xls");
Workbook wb = new HSSFWorkbook();
// create a new sheet
Sheet sheet = wb.createSheet("Apache POI XSSF");
// create a new row
Row row = sheet.createRow(1);
// create a new cell
Cell cell = row.createCell(1);
// set style
CellStyle style = wb.createCellStyle();
// set text
cell.setCellValue("File Format Developer Guide");
// set font settings
Font font = wb.createFont();
font.setFontHeightInPoints((short) 14);
font.setFontName("Arial");
font.setItalic(true);
font.setBold(true);
// apply font
style.setFont(font);
cell.setCellStyle(style);
// save
wb.write(outfile);