„File IO“ yra svarbi bet kokio programinės įrangos proceso dalis. Mes dažnai kuriame failą, jį atidarome ir atnaujiname arba ištriname iš savo kompiuterių. Tas pats pasakytina ir apie „Selenium Automation“. Mums reikalingas procesas, leidžiantis manipuliuoti failais naudojant „Selenium“.
„Java“ suteikia mums skirtingas rinkmenų manipuliavimo selenu klases. Šioje pamokoje sužinosime, kaip galime skaityti ir rašyti „Excel“ faile, naudodami „Java IO“ paketą ir „Apache POI“ biblioteką.
Apache LV selene
„ Apache POI Selenium“ yra plačiai naudojama API seleno duomenimis pagrįstiems bandymams atlikti. Tai yra „Java“ parašyta LV biblioteka, suteikianti vartotojams API manipuliuoti „Microsoft“ dokumentais, tokiais kaip .xls ir .xlsx. Vartotojai gali lengvai kurti, modifikuoti ir skaityti / rašyti į „Excel“ failus. LV reiškia „Prastas uždengimo įgyvendinimas“.
- Kaip tvarkyti „Excel“ failą naudojant LV („Maven POM Dependency“)
- Klasės ir sąsajos LV
- Skaitymo / rašymo operacija
- Skaityti duomenis iš „Excel“ failo
- Parašykite duomenis „Excel“ faile
- „Excel“ manipuliavimas naudojant JXL API
„Excel“ eksportavimas
Kaip tvarkyti „Excel“ failą naudojant LV („Maven POM Dependency“)
Norėdami skaityti ir rašyti „Excel“ failą „Java“, „Apache“ pateikia labai žinomą bibliotekos LV. Ši biblioteka gali pakankamai nuskaityti ir parašyti tiek „ XLS“, tiek „ XLSX“ failų formatus „Excel“.
Norėdami skaityti XLS failus, HSSF įgyvendinimą teikia LV biblioteka.
Jei norite skaityti XLSX, bus pasirenkamas LV bibliotekos XSSF įgyvendinimas . Panagrinėkime šiuos įgyvendinimus išsamiai.
Jei savo projekte naudojate „Maven“, priklausys nuo „Maven“
org.apache.poi poi 4.1.1
Arba galite tiesiog atsisiųsti naujausios versijos LV indelius iš http://poi.apache.org/download.html ir atsisiųsti naujausią ZIP failą
Atsisiųsdami šio indelio ZIP failą, turite jį išpakuoti ir visus šiuos stiklainius pridėti prie savo projekto klasės kelio.
Klasės ir sąsajos LV:
Žemiau yra iš skirtingų Java sąsajų ir klasių sąraše LV skaityti XLS ir XLSX File-
- Darbaknygė : „XSSFWorkbook“ ir „HSSFWorkbook“ klasės įdiegia šią sąsają.
- „XSSFWorkbook“ : tai XLSX failo klasės atvaizdas.
- HSSFWorkbook : yra XLS failo klasės atvaizdas.
- Lapas : XSSFSheet ir HSSFSheet klasės įgyvendina šią sąsają.
- XSSFSheet : klasė, vaizduojanti XLSX failo lapą.
- HSSFSheet : klasė, vaizduojanti lapą XLS faile.
- Eilutė : XSSFRow ir HSSFRow klasės įgyvendina šią sąsają.
- XSSFRow : Ar klasė žymi eilutę XLSX failo lape.
- HSSFRow : Ar klasė žymi eilutę XLS failo lape.
- Cell : XSSFCell ir HSSFCell klasės įgyvendina šią sąsają.
- „XSSFCell“ : yra klasė, žyminti langelį XLSX failo eilutėje.
- „HSSFCell“: yra klasė, žyminti langelį XLS failo eilutėje.
Skaitymo / rašymo operacija
Savo pavyzdyje mes apsvarstysime toliau pateiktą „Excel“ failo formatą
Skaityti duomenis iš „Excel“ failo
Pilnas pavyzdys: Čia mes bandome nuskaityti duomenis iš „Excel“ selene:
paketas excelExportAndFileIO;importuoti java.io.File;importuoti java.io.FileInputStream;importuoti java.io.IOException;importuoti org.apache.poi.hssf.usermodel.HSSFWorkbook;importuoti org.apache.poi.ss.usermodel.Row;importuoti org.apache.poi.ss.usermodel.Sheet;importuoti org.apache.poi.ss.usermodel.Workbook;importuoti org.apache.poi.xssf.usermodel.XSSFWorkbook;viešoji klasė „ReadGuru99ExcelFile“ {public void readExcel (String filePath, String fileName, String sheetName) išmeta IOException {// Sukurkite failų klasės objektą, kad atidarytumėte xlsx failąFailo failas = naujas failas (filePath + "\\" + fileName);// Sukurkite „FileInputStream“ klasės objektą, kad galėtumėte skaityti „Excel“ failąFileInputStream inputStream = naujas FileInputStream (failas);Darbaknygė guru99Workbook = null;// Raskite failo plėtinį, padalydami failo pavadinimą į eilutę ir gaudami tik plėtinio pavadinimąString fileExtensionName = failoVardas.substringas (failoVardas.indexOf ("."));// Patikrinkite sąlygą, jei failas yra xlsx failasjei (fileExtensionName.equals (". xlsx")) {// Jei tai yra xlsx failas, sukurkite XSSFWorkbook klasės objektąguru99Workbook = naujas XSSFWorkbook (inputStream);}// Patikrinkite sąlygą, jei failas yra xls failaselse if (fileExtensionName.equals (". xls")) {// Jei tai yra xls failas, sukurkite HSSFWorkbook klasės objektąguru99Workbook = naujas HSSFWorkbook (inputStream);}// Perskaitykite darbaknygės lapą pavadinimuLapas guru99Sheet = guru99Workbook.getSheet (sheetName);// Rasti eilučių skaičių „Excel“ faileint rowCount = guru99Sheet.getLastRowNum () - guru99Sheet.getFirstRowNum ();// Sukurkite kilpą visose „Excel“ failo eilutėse, kad ją perskaitytumėteuž (int i = 0; iPastaba: čia nenaudojame „Testng“ sistemos. Paleiskite klasę kaip „Java“ programą naudodami „Selenium“ funkciją „read excel“, kaip parodyta aukščiau pateiktame pavyzdyje.
Parašykite duomenis „Excel“ faile
Pilnas pavyzdys: Čia bandome įrašyti duomenis iš „Excel“ failo, pridėdami naują eilutę „Excel“ faile
paketas excelExportAndFileIO;importuoti java.io.File;importuoti java.io.FileInputStream;importuoti java.io.FileOutputStream;importuoti java.io.IOException;importuoti org.apache.poi.hssf.usermodel.HSSFWorkbook;importuoti org.apache.poi.ss.usermodel.Cell;importuoti org.apache.poi.ss.usermodel.Row;importuoti org.apache.poi.ss.usermodel.Sheet;importuoti org.apache.poi.ss.usermodel.Workbook;importuoti org.apache.poi.xssf.usermodel.XSSFWorkbook;viešoji klasė WriteGuru99ExcelFile {public void writeExcel (String filePath, String fileName, String sheetName, String [] dataToWrite) išmeta IOException {// Sukurkite failų klasės objektą, kad atidarytumėte xlsx failąFailo failas = naujas failas (filePath + "\\" + fileName);// Sukurkite „FileInputStream“ klasės objektą, kad galėtumėte skaityti „Excel“ failąFileInputStream inputStream = naujas FileInputStream (failas);Darbaknygė guru99Workbook = null;// Raskite failo plėtinį, padalydami failo pavadinimą į eilutę ir gaudami tik plėtinio pavadinimąString fileExtensionName = failoVardas.substringas (failoVardas.indexOf ("."));// Patikrinkite sąlygą, jei failas yra xlsx failasjei (fileExtensionName.equals (". xlsx")) {// Jei tai yra xlsx failas, sukurkite XSSFWorkbook klasės objektąguru99Workbook = naujas XSSFWorkbook (inputStream);}// Patikrinkite sąlygą, jei failas yra xls failaselse if (fileExtensionName.equals (". xls")) {// Jei tai yra xls failas, sukurkite XSSFWorkbook klasės objektąguru99Workbook = naujas HSSFWorkbook (inputStream);}// Skaityti „Excel“ lapą pagal lapo pavadinimąLapo lapas = guru99Workbook.getSheet (sheetName);// Gaukite dabartinį „Excel“ failo eilučių skaičiųint rowCount = sheet.getLastRowNum () - sheet.getFirstRowNum ();// Gaukite pirmąją lapo eilutęEilučių eilutė = sheet.getRow (0);// Sukurkite naują eilutę ir pridėkite ją paskutiniame lapo lapeEilutė newRow = sheet.createRow (rowCount + 1);// Sukurkite kilpą per naujai sukurtos eilutės langelįuž (int j = 0; j„Excel“ manipuliavimas naudojant JXL API
JXL taip pat yra dar vienas garsus stiklainis, skirtas skaityti „Excel“ failus „Java“ ir rašyti failus. Šiais laikais LV yra naudojama daugumoje projektų, tačiau prieš LV JXL buvo tik „Java“ API, skirta manipuliuoti „Excel“. Tai labai maža ir paprasta API, skirta skaityti „Selenium“.
PATARIMAI: Aš siūlau nenaudoti JXL jokiame naujame projekte, nes biblioteka nėra aktyviai kuriama nuo 2010 m. Ir trūksta funkcijos, palyginti su LV API.
Atsisiųsti JXL:
Jei norite dirbti su JXL, galite jį atsisiųsti iš šios nuorodos
https://sourceforge.net/projects/jexcelapi/files/jexcelapi/2.6.12/
Be to, šiame „JXL“ faile galite gauti demonstracinį pavyzdį.
Kai kurios funkcijos:
- JXL gali skaityti „Excel“ failą „Selenium“, skirtame 95, 97, 2000, XP, 2003 darbaknygei.
- Mes galime dirbti su anglų, prancūzų, ispanų, vokiečių kalbomis.
- Galima nukopijuoti diagramą ir įterpti vaizdą „Excel“
Trūkumas:
- Mes galime rašyti tik „Excel 97“ ir naujesnes versijas (rašymas „Excel 95“ nepalaikomas).
- JXL nepalaiko „Excel“ failo XLSX formato.
- Tai generuoja skaičiuoklę „Excel 2000“ formatu.
Santrauka:
- „Excel“ failą galima nuskaityti naudojant „Java IO“. Tam turime naudoti „ Apache POI Jar“ .
- „Excel“ faile yra dviejų rūšių darbaknygė, XLSX ir XLS failai.
- LV yra skirtingos sąsajų darbaknygės, lapas, eilutė, langelis.
- Šias sąsajas įgyvendina atitinkamos XLS ( HSSFWorkbook, HSSFSheet, HSSFRow, HSSFCell ) ir XLSX ( XSSFWorkbook, XSSFSheet, XSSFRow, XSSFCell ) failų manipuliavimo klasės.
- JXL yra dar viena API, skirta „Excel“ tvarkymui „Selenium“.
- JXL negali dirbti su „Excel“ XLSX formatu.