Cum se citesc/scriu date în Excel Selenium Utilizarea Apache POI
⚡ Rezumat inteligent
Unitate de fișiere Excel Selenium teste bazate pe date, iar Apache POI este Java o bibliotecă ce le citește și le scrie. Secțiunile de mai jos acoperă dependența, clasele de bază, exemplele de citire și scriere și JXL.

File IO este o parte critică a oricărui proces software. În mod frecvent, creăm un fișier, îl deschidem și actualizăm ceva sau îl ștergem din computerele noastre. La fel este și cazul Selenium Automatizare. Avem nevoie de un proces cu care să manipulăm fișierele Selenium.
Java ne oferă diferite clase pentru manipularea fișierelor Selenium. În acest tutorial, vom învăța cum putem citi și scrie mai departe Excel fișier cu ajutorul Java pachet IO și Apache Biblioteca POI.
Apache POI în Selenium
Apache POI în Selenium este un API utilizat pe scară largă pentru Selenium testare bazată pe dateEste o bibliotecă POI scrisă în Java care oferă utilizatorilor un API pentru manipulare Microsoft documente precum .xls și .xlsx. Utilizatorii pot crea, modifica și citi/scrie cu ușurință în fișiere Excel. POI înseamnă „Implementare slabă a ofuscării”.
Cum se gestionează fișierele Excel folosind POI (dependența Maven POM)
Legături POI Selenium test la caietul de lucru de mai jos.
Pentru a citi și a scrie fișierul Excel în JavaApache oferă o bibliotecă POI foarte faimoasă. Această bibliotecă este suficient de capabilă să citească și să scrie fișiere Excel atât în format XLS, cât și XLSX.
Pentru a citi fișiere XLS, biblioteca POI oferă o implementare HSSF.
Pentru a citi XLSX, implementarea XSSF a bibliotecii POI va fi alegerea potrivită. Să studiem aceste implementări în detaliu.
Dacă utilizați Maven în proiectul dvs., dependența Maven va fi adăugată la pom.xml, așa cum se arată mai jos.
<dependency> <groupId>org.apache.poi</groupId> <artifactId>poi</artifactId> <version>4.1.1</version> </dependency>
Notă privind versiunea: 4.1.1 este exemplul original; proiectele actuale declară poi-ooxml 5.5.1, care este necesară pentru XLSX.
Sau pur și simplu puteți descărca cea mai recentă versiune POI borcane de la http://poi.apache.org/download.html și descărcați cel mai recent fișier zip
Când descărcați fișierul zip pentru acest borcan, trebuie să îl dezarhivați și să adăugați toate aceste borcane la calea de clasă a proiectului dumneavoastră.
Clase și interfețe în POI
Mai jos este o listă de diferite Java Interfețe și clase în POI pentru citirea fișierelor XLS și XLSX, prezentate mai jos -
- Workbook: Clasele XSSFWorkbook și HSSFWorkbook implementează această interfață.
- Caiet de lucru XSSF: Este o reprezentare de clasă a fișierului XLSX.
- Caiet de lucru HSSF: Este o reprezentare de clasă a unui fișier XLS.
- Foaie: Clasele XSSFSheet și HSSFSheet implementează această interfață.
- Foaie XSSFSheet: Este o clasă care reprezintă o foaie într-un fișier XLSX.
- Foaie HSSFSheet: Este o clasă care reprezintă o foaie dintr-un fișier XLS.
- Rând: Clasele XSSFRow și HSSFRow implementează această interfață.
- XSSFRow: Este o clasă care reprezintă un rând într-o foaie de calcul a fișierului XLSX.
- HSSFRow: Este o clasă care reprezintă un rând într-o foaie de calcul a unui fișier XLS.
- Cell: Clasele XSSFCell și HSSFCell implementează această interfață.
- XSSFCelă: Este o clasă care reprezintă o celulă dintr-un rând al unui fișier XLSX.
- Celulă HSSFC: Este o clasă care reprezintă o celulă dintr-un rând de fișier XLS.
Citeste, scrie OperaTION
Pentru exemplul nostru, vom lua în considerare mai jos formatul de fișier Excel dat
Citiți date din fișierul Excel
Exemplu complet: Aici încercăm să citim date din Excel în Selenium:
package 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) throws IOException{ //Create an object of File class to open xlsx file File file = new File(filePath+"\\"+fileName); //Create an object of FileInputStream class to read excel file FileInputStream inputStream = new FileInputStream(file); Workbook guru99Workbook = null; //Find the file extension by splitting file name in substring and getting only extension name String fileExtensionName = fileName.substring(fileName.indexOf(".")); //Check condition if the file is xlsx file if(fileExtensionName.equals(".xlsx")){ //If it is xlsx file then create object of XSSFWorkbook class guru99Workbook = new XSSFWorkbook(inputStream); } //Check condition if the file is xls file else if(fileExtensionName.equals(".xls")){ //If it is xls file then create object of HSSFWorkbook class guru99Workbook = new HSSFWorkbook(inputStream); } //Read sheet inside the workbook by its name Sheet guru99Sheet = guru99Workbook.getSheet(sheetName); //Find number of rows in excel file int rowCount = guru99Sheet.getLastRowNum()-guru99Sheet.getFirstRowNum(); //Create a loop over all the rows of excel file to read it for (int i = 0; i < rowCount+1; i++) { Row row = guru99Sheet.getRow(i); //Create a loop to print cell values in a row for (int j = 0; j < row.getLastCellNum(); j++) { //Print Excel data in console System.out.print(row.getCell(j).getStringCellValue()+"|| "); } System.out.println(); } } //Main function is calling readExcel function to read data from excel file public static void main(String...strings) throws IOException{ //Create an object of ReadGuru99ExcelFile class ReadGuru99ExcelFile objExcelFile = new ReadGuru99ExcelFile(); //Prepare the path of excel file String filePath = System.getProperty("user.dir")+"\\src\\excelExportAndFileIO"; //Call read file method of the class to read data objExcelFile.readExcel(filePath,"ExportExcel.xlsx","ExcelGuru99Demo"); } }
Notă: Nu folosim TestNG cadru aici. Rulați clasa ca Java Aplicație care utilizează funcția citire excel în Selenium așa cum se arată în exemplul de mai sus.
Consola imprimă apoi fiecare rând, celulă cu celulă.
Scrieți date într-un fișier Excel
Exemplu complet: Aici încercăm să scriem date dintr-un fișier Excel prin adăugarea unui nou rând în fișierul Excel.
package 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) throws IOException{ //Create an object of File class to open xlsx file File file = new File(filePath+"\\"+fileName); //Create an object of FileInputStream class to read excel file FileInputStream inputStream = new FileInputStream(file); Workbook guru99Workbook = null; //Find the file extension by splitting file name in substring and getting only extension name String fileExtensionName = fileName.substring(fileName.indexOf(".")); //Check condition if the file is xlsx file if(fileExtensionName.equals(".xlsx")){ //If it is xlsx file then create object of XSSFWorkbook class guru99Workbook = new XSSFWorkbook(inputStream); } //Check condition if the file is xls file else if(fileExtensionName.equals(".xls")){ //If it is xls file then create object of XSSFWorkbook class guru99Workbook = new HSSFWorkbook(inputStream); } //Read excel sheet by sheet name Sheet sheet = guru99Workbook.getSheet(sheetName); //Get the current count of rows in excel file int rowCount = sheet.getLastRowNum()-sheet.getFirstRowNum(); //Get the first row from the sheet Row row = sheet.getRow(0); //Create a new row and append it at last of sheet Row newRow = sheet.createRow(rowCount+1); //Create a loop over the cell of newly created Row for(int j = 0; j < row.getLastCellNum(); j++){ //Fill data in row Cell cell = newRow.createCell(j); cell.setCellValue(dataToWrite[j]); } //Close input stream inputStream.close(); //Create an object of FileOutputStream class to create write data in excel file FileOutputStream outputStream = new FileOutputStream(file); //write data in the excel file guru99Workbook.write(outputStream); //close output stream outputStream.close(); } public static void main(String...strings) throws IOException{ //Create an array with the data in the same order in which you expect to be filled in excel file String[] valueToWrite = {"Mr. E","Noida"}; //Create an object of current class WriteGuru99ExcelFile objExcelFile = new WriteGuru99ExcelFile(); //Write the file using file name, sheet name and the data to be filled objExcelFile.writeExcel(System.getProperty("user.dir")+"\\src\\excelExportAndFileIO","ExportExcel.xlsx","ExcelGuru99Demo",valueToWrite); } }
Registrul de lucru conține apoi rândul adăugat.
Manipulare Excel folosind API-ul JXL
JXL este, de asemenea, un alt borcan faimos pentru a citi fișierul Excel Java și scrierea fișierelor. În zilele noastre, POI este folosit în majoritatea proiectelor, dar înainte de POI, JXL era doar Java API pentru manipularea Excel. Este un API foarte mic și simplu pentru citirea Excel Selenium.
SFATURI: Sugestia mea este să nu folosiți JXL în niciun proiect nou, deoarece biblioteca nu este în dezvoltare activă din 2010 — 2.6.12 este încă cea mai recentă versiune — și lipsa acestei funcții lipsește în comparație cu API-ul POI.
Descărcați JXL:
Dacă doriți să lucrați cu JXL, îl puteți descărca de pe acest link
https://sourceforge.net/projects/jexcelapi/files/jexcelapi/2.6.12/
De asemenea, puteți obține un exemplu demonstrativ în acest fișier zip pentru JXL, deoarece ex.tracCuprinsul prezentat mai jos.
Unele dintre caracteristici:
- JXL este capabil să citească fișierul Excel în Selenium pentru registrul de lucru 95, 97, 2000, XP, 2003.
- Putem lucra cu engleza, franceza, spaniola, germana.
- Copierea unei diagrame și inserarea unei imagini în Excel este posibilă
Dezavantaj:
- Putem scrie doar Excel 97 și mai târziu (scrierea în Excel 95 nu este acceptată).
- JXL nu acceptă formatul XLSX al fișierului Excel.
- Acesta generează o foaie de calcul în format Excel 2000.










