Fail IO on mis tahes tarkvaraprotsessi kriitiline osa. Me loome faili sageli, avame selle ja värskendame midagi või kustutame selle oma arvutist. Sama lugu on Selenium Automationiga. Failide seleeniga manipuleerimiseks vajame protsessi.
Java pakub meile erinevaid seleeniga failidega manipuleerimise klasse. Selles õpetuses õpime Java IO paketi ja Apache POI teegi abil Exceli faili lugema ja kirjutama.
Apache HP seleenis
Apache HP Seleen on laialdaselt kasutatav API seleeni andmed juhitud katseid. See on Java-s kirjutatud HP-teek, mis annab kasutajatele API Microsofti dokumentidega nagu .xls ja .xlsx manipuleerimiseks. Kasutajad saavad hõlpsasti Exceli faile luua, muuta ja lugeda / nendesse kirjutada. HP tähistab halba varjamise rakendamist.
- Exceli faili haldamine HP abil (Maven POM Dependency)
- Klassid ja liidesed HP-s
- Lugemis- / kirjutamisoperatsioon
- Andmete lugemine Exceli failist
- Andmete kirjutamine Exceli faili
- Exceli manipuleerimine JXL API abil
Exceli eksportimine
Exceli faili haldamine HP abil (Maven POM Dependency)
Exceli faili Java-vormingus lugemiseks ja kirjutamiseks pakub Apache väga kuulsa teegi HP-d. See teek on piisavalt võimeline Exceli XLS- ja XLSX- failivormingute lugemiseks ja kirjutamiseks .
XLS- failide lugemiseks pakub POI teek HSSF-i rakendust.
XLSX-i lugemiseks on valida POI- teegi XSSF-i rakendamine . Uurime neid rakendusi üksikasjalikult.
Kui kasutate oma projektis Maveni, siis sõltub Maven
org.apache.poi poi 4.1.1
Või saate lihtsalt alla laadida uusima versiooni POI purgid saidilt http://poi.apache.org/download.html ja alla laadida uusim ZIP-fail
Selle purgi zip-faili allalaadimisel peate selle lahti pakkima ja lisama kõik need purgid oma projekti klassi teele.
Klassid ja liidesed HP-s:

Järgnevalt on loetletud erinevad Java liidesed ja huvipunktide klassid, et lugeda XLS- ja XLSX- faili-
- Töövihik : XSSFWorkbooki ja HSSFWorkbooki klassid rakendavad seda liidest.
- XSSFWorkbook : on klassi XLSX faili esitus.
- HSSFWorkbook : on XLS-faili klassiesitus .
- Leht : XSSFSheet ja HSSFSheet klassid rakendavad seda liidest.
- XSSFSheet : on klass, mis tähistab lehte XLSX-failis.
- HSSFSheet : on klass, mis tähistab lehte XLS-failis.
- Rida : XSSFRow ja HSSFRow klassid rakendavad seda liidest.
- XSSFRow : Kas klass tähistab rida XLSX-faili lehel.
- HSSFRow : Kas klass tähistab rida XLS-faili lehel.
- Lahter : XSSFCell ja HSSFCell klassid rakendavad seda liidest.
- XSSFCell : on klass, mis tähistab lahtrit XLSX-faili reas.
- HSSFCell: on klass, mis tähistab lahtrit XLS-faili reas.
Lugemis- / kirjutamisoperatsioon-
Näiteks kaalume allpool toodud Exceli failivormingut
Andmete lugemine Exceli failist
Täielik näide: proovime siin Exceli andmeid seleenis lugeda:
pakett 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;avalik klass ReadGuru99ExcelFile {public void readExcel (String filePath, String fileName, String sheetName) viskab IOException {// xlsx-faili avamiseks looge failiklassi objektFailifail = uus fail (filePath + "\\" + failinimi);// Exceli faili lugemiseks looge klassi FileInputStream objektFileInputStream inputStream = uus FileInputStream (fail);Töövihik guru99Workbook = null;// Leidke faililaiend, jagades alamstringis failinime ja hankides ainult laienduse nimeString fileExtensionName = failinimi.substring (failinimi.indexOf ("."));// Kontrollige tingimust, kui fail on xlsx-failkui (fileExtensionName.equals (". xlsx")) {// Kui see on xlsx-fail, siis looge klassi XSSFWorkbook objektguru99Workbook = uus XSSFWorkbook (inputStream);}// Kontrollige tingimust, kui fail on xls-failelse if (fileExtensionName.equals (". xls")) {{// Kui see on xls-fail, siis looge klassi HSSFWorkbook objektguru99Workbook = uus HSSFWorkbook (inputStream);}// Loe töövihiku sees olevat lehte selle nime järgiLeht guru99Sheet = guru99Workbook.getSheet (sheetName);// Leia Exceli failist ridade arvint rowCount = guru99Sheet.getLastRowNum () - guru99Sheet.getFirstRowNum ();// Selle lugemiseks looge silmus Exceli faili kõigi ridade kohaljaoks (int i = 0; iMärkus: me ei kasuta siin Testng raamistikku. Käivitage klass Java-rakendusena, kasutades funktsiooni read excel Selenium, nagu on näidatud ülaltoodud näites.
Andmete kirjutamine Exceli faili
Täielik näide: siin proovime andmeid Exceli failist kirjutada, lisades Exceli faili uue rea
pakett 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;avalik klass WriteGuru99ExcelFile {public void writeExcel (String filePath, String fileName, String sheetName, String [] dataToWrite) viskab IOExceptioni {// xlsx-faili avamiseks looge failiklassi objektFailifail = uus fail (filePath + "\\" + failinimi);// Exceli faili lugemiseks looge klassi FileInputStream objektFileInputStream inputStream = uus FileInputStream (fail);Töövihik guru99Workbook = null;// Leidke faililaiend, jagades alamstringis failinime ja hankides ainult laienduse nimeString fileExtensionName = failinimi.substring (failinimi.indexOf ("."));// Kontrollige tingimust, kui fail on xlsx-failkui (fileExtensionName.equals (". xlsx")) {// Kui see on xlsx-fail, siis looge klassi XSSFWorkbook objektguru99Workbook = uus XSSFWorkbook (inputStream);}// Kontrollige tingimust, kui fail on xls-failelse if (fileExtensionName.equals (". xls")) {{// Kui see on fail xls, looge klassi XSSFWorkbook objektguru99Workbook = uus HSSFWorkbook (inputStream);}// Loe Exceli lehte lehe nime järgiLehe leht = guru99Workbook.getSheet (sheetName);// Hankige Exceli faili praegune ridade arvint rowCount = leht.getLastRowNum () - leht.getFirstRowNum ();// Hankige lehelt esimene ridaRida rida = sheet.getRow (0);// Looge uus rida ja lisage see lehe lõpuksRida newRow = leht.createRow (rowCount + 1);// Loo silmus äsja loodud rea lahtrissefor (int j = 0; j
Exceli manipuleerimine JXL API abil
JXL on ka teine kuulus purk Java-failide lugemiseks ja failide kirjutamiseks. Tänapäeval kasutatakse HP-d enamikus projektides, kuid enne HP-d oli JXL ainult Java API Exceli manipuleerimiseks. See on väga väike ja lihtne API seleeni Exceli lugemiseks.
NÕUANDED: Minu ettepanek on mitte kasutada JXL-i üheski uues projektis, kuna raamatukogu pole 2010. aastast aktiivselt arenenud ja funktsiooni puudumine võrreldes HP API-ga.
Laadige alla JXL:
Kui soovite JXL-iga töötada, saate selle sellelt lingilt alla laadida
https://sourceforge.net/projects/jexcelapi/files/jexcelapi/2.6.12/
Selles JXL-i pakitud failis saate ka demonäite.
Mõned funktsioonid:
- JXL on võimeline lugema Exceli faili Seleenis 95, 97, 2000, XP, 2003 töövihiku jaoks.
- Saame töötada inglise, prantsuse, hispaania, saksa keelega.
- Diagrammi kopeerimine ja pildi sisestamine Excelis on võimalik
Puudus:
- Saame kirjutada ainult Exceli 97 ja uuemaid (Excelis 95 kirjutamist ei toetata).
- JXL ei toeta Exceli faili XLSX-vormingut.
- See genereerib arvutustabeli Exceli 2000 vormingus.
Kokkuvõte:
- Exceli faili saab lugeda Java IO operatsiooni abil. Selleks peame kasutama Apache POI Jar-i .
- Exceli failis on kahte tüüpi töövihikut: XLSX ja XLS .
- HP-l on erinevad liideste töövihik, leht, rida, lahter.
- Neid liideseid rakendavad vastavad XLS-i ( HSSFWorkbook, HSSFSheet, HSSFRow, HSSFCell ) ja XLSX ( XSSFWorkbook, XSSFSheet, XSSFRow, XSSFCell ) failide manipuleerimise klassid.
- JXL on veel üks seleeni Exceli käitlemise API.
- JXL ei saa töötada Exceli XLSX-vormingus.