Adatok olvasása / írása Excel fájlból: Szelén POI

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:

Osztályok és interfészek az Apache 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; i 

Megjegyzé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; j 

Excel 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.

érdekes cikkek...