File IO on kriittinen osa mitä tahansa ohjelmistoprosessia. Luomme usein tiedoston, avaamme sen ja päivitämme jotain tai poistamme sen tietokoneistamme. Sama koskee Selenium Automationia. Tarvitsemme prosessin tiedostojen käsittelemiseksi Seleniumilla.
Java tarjoaa meille erilaisia luokkia tiedostojen käsittelyyn Seleniumilla. Tässä opetusohjelmassa aiomme oppia, kuinka voimme lukea ja kirjoittaa Excel-tiedostoon Java IO -paketin ja Apache POI -kirjaston avulla.
Apache POI seleenissä
Seleenissä oleva Apache POI on laajalti käytetty API seleenidataohjattuun testaukseen. Se on Java-muodossa kirjoitettu POI-kirjasto, joka antaa käyttäjille API: n Microsoft-asiakirjojen, kuten .xls ja .xlsx, käsittelyyn. Käyttäjät voivat helposti luoda, muokata ja lukea / kirjoittaa Excel-tiedostoja. POI tarkoittaa "huono obfuscation-toteutus".
- Kuinka käsitellä Excel-tiedostoa POI: lla (Maven POM Dependency)
- Luokat ja käyttöliittymät POI: ssa
- Luku- / kirjoitusoperaatio
- Lue tiedot Excel-tiedostosta
- Kirjoita tiedot Excel-tiedostoon
- Excel-manipulointi JXL-sovellusliittymän avulla
Vie Excel
Kuinka käsitellä Excel-tiedostoa POI: lla (Maven POM Dependency)
Jos haluat lukea ja kirjoittaa Excel-tiedostoa Java-muodossa, Apache tarjoaa erittäin tunnetun kirjaston POI: n. Tämä kirjasto pystyy lukemaan ja kirjoittamaan sekä XLS- että XLSX- tiedostomuotoja Excelistä.
Lukea XLS tiedostoja An HSSF toteutus tarjoaa POI kirjasto.
Lukea XLSX, XSSF täytäntöönpano POI kirjasto on valinta. Tutkitaan näitä toteutuksia yksityiskohtaisesti.
Jos käytät Mavenia projektissasi, Maven-riippuvuus tulee olemaan
org.apache.poi poi 4.1.1
Tai voit yksinkertaisesti ladata uusimman version POI-purkit osoitteesta http://poi.apache.org/download.html ja ladata uusimman zip-tiedoston
Kun lataat tämän purkin zip-tiedoston, sinun on purettava se ja lisättävä nämä kaikki purkit projektisi luokan polulle.
Luokat ja käyttöliittymät KP: ssä:

Seuraavassa on luettelo erilaisista Java rajapinnat ja luokat POI lukemiseen XLS ja XLSX tiedosto-
- Työkirja : XSSFWorkbook- ja HSSFWorkbook-luokat toteuttavat tämän käyttöliittymän.
- XSSFWorkbook : Onko luokan XLSX-tiedosto.
- HSSFWorkbook : Onko luokan XLS-tiedosto.
- Sheet : XSSFSheet- ja HSSFSheet-luokat toteuttavat tämän käyttöliittymän.
- XSSFSheet : Onko luokka, joka edustaa arkkia XLSX-tiedostossa.
- HSSFSheet : Onko luokka, joka edustaa arkkia XLS-tiedostossa.
- Rivi : XSSFRow- ja HSSFRow-luokat toteuttavat tämän käyttöliittymän.
- XSSFRow : Onko luokka, joka edustaa riviä XLSX-tiedostossa.
- HSSFRow : Onko luokka, joka edustaa riviä XLS-tiedostossa.
- Solu : XSSFCell- ja HSSFCell-luokat toteuttavat tämän käyttöliittymän.
- XSSFCell : Onko luokka, joka edustaa solua XLSX-tiedoston rivillä.
- HSSFCell: Onko luokka, joka edustaa solua XLS-tiedoston rivillä.
Luku- / kirjoitusoperaatio
Esimerkissämme tarkastelemme alla olevaa Excel-tiedostomuotoa
Lue tiedot Excel-tiedostosta
Täydellinen esimerkki: Yritämme lukea tietoja Excelistä Seleniumissa:
paketti excelExportAndFileIO;tuo java.io.File;tuo java.io.FileInputStream;tuo java.io.IOException;tuo org.apache.poi.hssf.usermodel.HSSFWorkbook;tuo org.apache.poi.ss.usermodel.Row;tuo org.apache.poi.ss.usermodel.Sheet;tuo org.apache.poi.ss.usermodel.Workbook;tuo org.apache.poi.xssf.usermodel.XSSFWorkbook;julkinen luokka ReadGuru99ExcelFile {public void readExcel (String filePath, String fileName, String sheetName) heittää IOException {// Luo tiedosto-luokan objekti avataksesi xlsx-tiedostonTiedosto = uusi tiedosto (filePath + "\\" + tiedostonimi);// Luo FileInputStream-luokan objekti Excel-tiedoston lukemiseksiFileInputStream inputStream = uusi FileInputStream (tiedosto);Työkirja guru99Workbook = null;// Etsi tiedostopääte jakamalla tiedoston nimi alimerkkijonoon ja saamalla vain laajennuksen nimiMerkkijono fileExtensionName = tiedostonimi.substring (tiedostonimi.indexOf ("."));// Tarkista ehto, onko tiedosto xlsx-tiedostojos (fileExtensionName.equals (". xlsx")) {// Jos se on xlsx-tiedosto, luo XSSFWorkbook-luokan objektiguru99Workbook = uusi XSSFWorkbook (inputStream);}// Tarkista ehto, onko tiedosto xls-tiedostoelse if (tiedostoExtensionName.equals (". xls")) {// Jos se on xls-tiedosto, luo HSSFWorkbook-luokan objektiguru99Workbook = uusi HSSFWorkbook (inputStream);}// Lue työkirjan sisällä oleva taulukko nimelläArkki guru99Sheet = guru99Työkirja.getSheet (taulukonNimi);// Etsi rivit Excel-tiedostostaint rowCount = guru99Sheet.getLastRowNum () - guru99Sheet.getFirstRowNum ();// Luo silmukka kaikkien Excel-tiedostorivien yli sen lukemiseksifor (int i = 0; iHuomaa: emme käytä tässä Testng-kehystä. Suorita luokka Java-sovelluksena funktiolla read excel Seleniumissa, kuten yllä olevassa esimerkissä on esitetty.
Kirjoita tiedot Excel-tiedostoon
Täydellinen esimerkki: Yritämme kirjoittaa tietoja Excel-tiedostosta lisäämällä uusi rivi Excel-tiedostoon
paketti excelExportAndFileIO;tuo java.io.File;tuo java.io.FileInputStream;tuo java.io.FileOutputStream;tuo java.io.IOException;tuo org.apache.poi.hssf.usermodel.HSSFWorkbook;tuo org.apache.poi.ss.usermodel.Cell;tuo org.apache.poi.ss.usermodel.Row;tuo org.apache.poi.ss.usermodel.Sheet;tuo org.apache.poi.ss.usermodel.Workbook;tuo org.apache.poi.xssf.usermodel.XSSFWorkbook;julkinen luokka WriteGuru99ExcelFile {public void writeExcel (String filePath, String fileName, String sheetName, String [] dataToWrite) heittää IOException {// Luo tiedosto-luokan objekti avataksesi xlsx-tiedostonTiedosto = uusi tiedosto (filePath + "\\" + tiedostonimi);// Luo FileInputStream-luokan objekti Excel-tiedoston lukemiseksiFileInputStream inputStream = uusi FileInputStream (tiedosto);Työkirja guru99Workbook = null;// Etsi tiedostopääte jakamalla tiedoston nimi alimerkkijonoon ja saamalla vain laajennuksen nimiMerkkijono fileExtensionName = tiedostonimi.substring (tiedostonimi.indexOf ("."));// Tarkista ehto, onko tiedosto xlsx-tiedostojos (fileExtensionName.equals (". xlsx")) {// Jos se on xlsx-tiedosto, luo XSSFWorkbook-luokan objektiguru99Workbook = uusi XSSFWorkbook (inputStream);}// Tarkista ehto, onko tiedosto xls-tiedostoelse if (tiedostoExtensionName.equals (". xls")) {// Jos se on xls-tiedosto, luo XSSFWorkbook-luokan objektiguru99Workbook = uusi HSSFWorkbook (inputStream);}// Lue Excel-taulukko arkin nimen mukaanArkkiarkki = guru99Workbook.getSheet (sheetName);// Hae nykyinen rivimäärä Excel-tiedostossaint rowCount = taulukko.getLastRowNum () - taulukko.getFirstRowNum ();// Hae taulukon ensimmäinen riviRivi = taulukko.getRow (0);// Luo uusi rivi ja liitä se taulukon viimeiseen kohtaanRivi newRow = sheet.createRow (rowCount + 1);// Luo silmukka uuden luodun rivin solun päällefor (int j = 0; j
Excel-manipulointi JXL-sovellusliittymän avulla
JXL on myös toinen kuuluisa purkki Excel-tiedostojen lukemiseen Java-tiedostoissa ja tiedostojen kirjoittamiseen. Nykyään POI: ta käytetään useimmissa projekteissa, mutta ennen KP: tä JXL oli vain Java-sovellusliittymä Excel-manipulointiin. Se on hyvin pieni ja yksinkertainen sovellusliittymä Excelin lukemiseen Seleniumissa.
VINKKEJÄ: Ehdotukseni on olla käyttämättä JXL: ää missään uudessa projektissa, koska kirjastoa ei kehitetä aktiivisesti vuodesta 2010 ja ominaisuus puuttuu POI-sovellusliittymään verrattuna.
Lataa JXL:
Jos haluat työskennellä JXL: n kanssa, voit ladata sen tältä linkiltä
https://sourceforge.net/projects/jexcelapi/files/jexcelapi/2.6.12/
Voit myös saada esittelyesimerkin tämän pakatun JXL-tiedoston sisällä.
Joitakin ominaisuuksia:
- JXL pystyy lukemaan Excel-tiedoston Selenium for 95, 97, 2000, XP, 2003 -työkirjasta.
- Voimme työskennellä englannin, ranskan, espanjan, saksan kanssa.
- Kaavion kopiointi ja kuvan lisääminen Exceliin on mahdollista
Haittapuoli:
- Voimme kirjoittaa vain Excel 97: tä ja uudempia (Excel 95: ssä kirjoittamista ei tueta).
- JXL ei tue Excel-tiedoston XLSX-muotoa.
- Se luo laskentataulukon Excel 2000 -muodossa.
Yhteenveto:
- Excel-tiedosto voidaan lukea Java IO -toiminnolla. Tätä varten meidän on käytettävä Apache POI Jaria .
- Excel-tiedostossa on kahdenlaisia työkirjoja, XLSX- ja XLS- tiedostoja.
- POI: lla on eri käyttöliittymien työkirja, taulukko, rivi, solu.
- Nämä rajapinnat toteutetaan vastaavilla XLS ( HSSFWorkbook, HSSFSheet, HSSFRow, HSSFCell ) ja XLSX ( XSSFWorkbook, XSSFSheet, XSSFRow, XSSFCell ) tiedostojen käsittelyluokilla.
- JXL on toinen sovellusliittymä Seleniumin Excel-käsittelyyn.
- JXL ei voi toimia Excelin XLSX-muodon kanssa.