A File IO minden szoftverfolyamat kritikus része. Gyakran létrehozunk egy fájlt, megnyitunk és frissítünk valamit, vagy töröljük a Számítógépünkből. Ugyanez a helyzet a Selenium Automation esetében is. Szükségünk van egy folyamatra a fájlok Seleniummal történő kezeléséhez.
A Java különböző osztályokat biztosít számunkra a szelénnel történő fájlkezeléshez. Ebben az oktatóanyagban megtanuljuk, hogyan olvashatunk és írhatunk Excel fájlokra a Java IO csomag és az Apache POI könyvtár segítségével.
Apache POI a szelénben
A szelénben található Apache POI egy széles körben használt API a szelénadat-vezérelt tesztekhez. Ez egy Java-ban írt POI-könyvtár, amely API-t biztosít a felhasználóknak a Microsoft-dokumentumok, például .xls és .xlsx kezelésére. A felhasználók könnyen létrehozhatnak, módosíthatnak és olvashatnak / írhatnak az Excel fájlokba. A POI a „Gyenge elfedés megvalósítása”.
- Az Excel fájl kezelése a POI (Maven POM Dependency) használatával
- Osztályok és interfészek a POI-ban
- Írási / olvasási művelet
- Adatok olvasása az Excel fájlból
- Írjon adatokat Excel fájlba
- Excel manipuláció JXL API használatával
Excel exportálása
Az Excel fájl kezelése a POI (Maven POM Dependency) használatával
Az Excel fájl Java-ban történő olvasásához és írásához az Apache egy nagyon híres könyvtári POI-t biztosít. Ez a könyvtár eléggé képes az Excel XLS és XLSX fájlformátumainak olvasására és írására .
Az XLS fájlok olvasásához HSSF megvalósítást biztosít a POI könyvtár.
Az XLSX olvasásához a POI könyvtár XSSF megvalósítása lesz a választás. Tanulmányozzuk részletesen ezeket a megvalósításokat.
Ha Mavenet használ a projektben, akkor a Maven-függőség az lesz
org.apache.poi poi 4.1.1
Vagy egyszerűen letöltheti a legfrissebb POI tégelyeket a http://poi.apache.org/download.html webhelyről, és letöltheti a legújabb zip fájlt
Amikor letölti ennek az üvegnek a zip fájlját, kicsomagolnia kell, és hozzá kell adnia ezeket az összes edényt a projekt osztályútvonalához.
Osztályok és interfészek a POI-ban:
Az alábbiakban felsoroljuk a különböző Java interfészeket és osztályokat a POI-ban az XLS és XLSX fájlok olvasásához.
- Munkafüzet : Az XSSFWorkbook és a HSSFWorkbook osztályok implementálják ezt az interfészt.
- XSSFWorkbook : Az XLSX fájl osztályábrázolása.
- HSSFWorkbook : Az XLS fájl osztályábrázolása.
- Lap : Az XSSFSheet és a HSSFSheet osztályok valósítják meg ezt az interfészt.
- XSSFSheet : Osztály, amely egy lapot képvisel egy XLSX fájlban.
- HSSFSheet : Osztály, amely egy lapot képvisel egy XLS fájlban.
- Row : Az XSSFRow és a HSSFRow osztályok valósítják meg ezt az interfészt.
- XSSFRow : Egy osztály reprezentálja az sort az XLSX fájl lapján.
- HSSFRow : Egy osztály reprezentálja az sort az XLS fájl lapján.
- Cell : Az XSSFCell és a HSSFCell osztályok valósítják meg ezt az interfészt.
- XSSFCell : Osztály, amely egy cellát képvisel az XLSX fájl sorában.
- HSSFCell: Osztály, amely egy cellát képvisel az XLS fájl sorában.
Írási / olvasási művelet
Példánkban az alábbiakban figyelembe vesszük az adott Excel fájlformátumot
Adatok olvasása az Excel fájlból
Teljes példa: Itt próbálunk adatokat olvasni az Excelből a szelénben:
csomag excelExportAndFileIO;import java.io.File;import java.io.FileInputStream;import java.io.IOException;import org.apache.poi.hssf.usermodel.HSSFWorkbook;import org.apache.poi.ss.usermodel.Row;import org.apache.poi.ss.usermodel.Sheet;import org.apache.poi.ss.usermodel.Workbook;import org.apache.poi.xssf.usermodel.XSSFWorkbook;public class ReadGuru99ExcelFile {public void readExcel (String filePath, String fileName, String sheetName) dobja az IOException {// Hozzon létre egy objektumot a File osztályból az xlsx fájl megnyitásáhozFile file = új File (filePath + "\\" + fileName);// Hozzon létre egy objektumot a FileInputStream osztályból az Excel fájl olvasásáhozFileInputStream inputStream = új FileInputStream (fájl);Munkafüzet guru99Workbook = null;// Keresse meg a fájlkiterjesztést úgy, hogy szétválasztja a fájl nevét az alstringben és csak a kiterjesztés nevét kapja megString fileExtensionName = fájlnév.substring (fájlNév.indexOf ("."));// Ellenőrizze a feltételt, ha a fájl xlsx fájlif (fileExtensionName.equals (". xlsx")) {// Ha xlsx fájl, akkor hozza létre az XSSFWorkbook osztály objektumátguru99Workbook = új XSSFWorkbook (inputStream);}// Ellenőrizze a feltételt, ha a fájl xls fájlelse if (fileExtensionName.equals (". xls")) {// Ha ez xls fájl, akkor hozzon létre egy objektumot a HSSFWorkbook osztálybólguru99Workbook = új HSSFWorkbook (inputStream);}// A munkafüzet belsejében olvassa el a lapot annak nevévelLap guru99Sheet = guru99Workbook.getSheet (sheetName);// Sorok száma az excel fájlbanint rowCount = guru99Sheet.getLastRowNum () - guru99Sheet.getFirstRowNum ();// Hozzon létre egy hurkot az excel fájl minden során az olvasáshozfor (int i = 0; iMegjegyzés: Itt nem a Testng keretrendszert használjuk. Futtassa az osztályt Java alkalmazásként az excel read read funkció használatával a Seleniumban, a fenti példában látható módon.
Írjon adatokat Excel fájlba
Teljes példa: Itt megpróbálunk adatokat írni Excel fájlból, új sor hozzáadásával az Excel fájlba
csomag excelExportAndFileIO;import java.io.File;import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.IOException;import org.apache.poi.hssf.usermodel.HSSFWorkbook;import org.apache.poi.ss.usermodel.Cell;import org.apache.poi.ss.usermodel.Row;import org.apache.poi.ss.usermodel.Sheet;import org.apache.poi.ss.usermodel.Workbook;import org.apache.poi.xssf.usermodel.XSSFWorkbook;public class WriteGuru99ExcelFile {public void writeExcel (String filePath, String fileName, String sheetName, String [] dataToWrite) dobja az IOException {// Hozzon létre egy objektumot a File osztályból az xlsx fájl megnyitásáhozFile file = új File (filePath + "\\" + fileName);// Hozzon létre egy objektumot a FileInputStream osztályból az Excel fájl olvasásáhozFileInputStream inputStream = új FileInputStream (fájl);Munkafüzet guru99Workbook = null;// Keresse meg a fájlkiterjesztést úgy, hogy szétválasztja a fájl nevét az alstringben és csak a kiterjesztés nevét kapja megString fileExtensionName = fájlnév.substring (fájlNév.indexOf ("."));// Ellenőrizze a feltételt, ha a fájl xlsx fájlif (fileExtensionName.equals (". xlsx")) {// Ha xlsx fájl, akkor hozza létre az XSSFWorkbook osztály objektumátguru99Workbook = új XSSFWorkbook (inputStream);}// Ellenőrizze a feltételt, ha a fájl xls fájlelse if (fileExtensionName.equals (". xls")) {// Ha ez xls fájl, akkor hozza létre az XSSFWorkbook osztály objektumátguru99Workbook = új HSSFWorkbook (inputStream);}// Olvassa el az Excel lapot név szerintLaplap = guru99Workbook.getSheet (lapNév);// Az aktuális sorszám lekérése az Excel fájlbanint rowCount = sheet.getLastRowNum () - sheet.getFirstRowNum ();// Szerezd meg az első sort a munkalaprólSor sor = sheet.getRow (0);// Hozzon létre egy új sort, és csatolja a lap utolsó részéhezSor newRow = sheet.createRow (rowCount + 1);// Hurok létrehozása az újonnan létrehozott Sor cellája fölöttmert (int j = 0; jExcel manipuláció JXL API használatával
A JXL egy másik híres jar az Excel fájlok Java-ban történő olvasására és fájlok írására. Manapság a POI-t a legtöbb projektben használják, de a POI előtt a JXL csak Java API volt az Excel manipulációhoz. Ez egy nagyon kicsi és egyszerű API a szelén excel olvasásához.
TIPPEK: Az a javaslatom, hogy ne használjuk a JXL-t egyetlen új projektben sem, mert a könyvtár 2010-től nem aktív fejlesztés alatt áll, és a funkció hiánya van összehasonlítva a POI API-val.
Töltse le a JXL-t:
Ha szeretne együttműködni a JXL-lel, letöltheti erről a linkről
https://sourceforge.net/projects/jexcelapi/files/jexcelapi/2.6.12/
A JXL-hez tartozó tömörített fájl belsejében is kaphat bemutató példát.
Néhány szolgáltatás:
- A JXL képes olvasni az Excel fájlokat a Selenium for 95, 97, 2000, XP, 2003 munkafüzethez.
- Dolgozhatunk angolul, franciával, spanyolul, németül.
- Diagram másolása és képbeillesztés az Excel programban lehetséges
Hátrány:
- Csak Excel 97-et és újabbakat írhatunk (az Excel 95-ben történő írás nem támogatott).
- A JXL nem támogatja az Excel fájl XLSX formátumát.
- Táblázatot készít Excel 2000 formátumban.
Összegzés:
- Az Excel fájl Java IO művelettel olvasható. Ehhez az Apache POI Jar-t kell használnunk .
- Kétféle munkafüzet létezik az Excel fájlokban, az XLSX és az XLS fájlokban.
- A POI-nak különböző interfész-munkafüzete, lapja, sora, cellája van.
- Ezeket az interfészeket a megfelelő XLS ( HSSFWorkbook, HSSFSheet, HSSFRow, HSSFCell ) és XLSX ( XSSFWorkbook, XSSFSheet, XSSFRow, XSSFCell ) fájlkezelési osztályok valósítják meg .
- A JXL egy másik API az Excel kezeléséhez a szelénben.
- A JXL nem működik az Excel XLSX formátumával.