IO File es una parte fundamental de cualquier proceso de software. A menudo creamos un archivo, lo abrimos y actualizamos algo o lo eliminamos en nuestras computadoras. Lo mismo ocurre con la automatización de selenio. Necesitamos un proceso para manejar archivos con Selenium.
Java nos proporciona varias clases para la manipulación de archivos con Selenium. En este tutorial, aprenderemos cómo podemos leer y escribir en Sobresalir archivo con la ayuda de Java Paquete DO y apache Biblioteca de puntos de interés.
Apache POI en selenio
El es Apache POI en selenio Es una API ampliamente utilizada para pruebas de datos de selenio. Es una biblioteca de puntos de interés escrita en Java que brinda a los usuarios una API para manipular documentos de Microsoft como .xls y .xlsx. Los usuarios pueden crear, modificar y leer / escribir archivos de Excel fácilmente. POI son las siglas de «Bad Enforcement».
Exportar Excel
Cómo manejar un archivo de Excel usando POI (Dependencia de Maven POM)
Para leer y escribir un archivo de Excel en Java, Apache POI proporciona una biblioteca muy popular. Esta biblioteca puede leer y escribir tanto XLS y XLSX Formato de archivo de Excel.
Ser leído XLS archivos, el HSSF La implementación es proporcionada por una biblioteca de puntos de interés.
Ser leído XLSX, XSSF implementación PDI Biblioteca Habrá una elección. Estudiemos estas implementaciones en detalle.
Si está utilizando Maven en su proyecto, habrá una dependencia de Maven
<dependency> <groupId>org.apache.poi</groupId> <artifactId>poi</artifactId> <version>4.1.1</version> </dependency>
O puede descargar la última versión de POI jars desde http://poi.apache.org/download.html y descargue el archivo zip más reciente
Una vez que descargue el archivo zip para este frasco, debe descomprimirlo y agregar todos estos frascos a la ruta de clases de su proyecto.
Clases e interfaces en POI:
La siguiente es una lista de varias interfaces y clases Java en PDI para leer XLS y XLSX expediente-
Operación de lectura / escritura
Por ejemplo, consideraremos a continuación un formato de archivo de Excel dado
Leer datos del archivo de Excel
Ejemplo completo: aquí estamos tratando de leer datos de Excel en 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"); } }
Nota la Testng creat aquí. Ejecute la clase como una aplicación Java utilizando la función excelencia en Selenium como se muestra en el ejemplo anterior.
Escribir datos en un archivo de Excel
Ejemplo completo: aquí estamos tratando de escribir datos desde un archivo de Excel agregando una nueva cadena a un archivo de 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); } }
Manipular Excel usando la API de JXL
JXL es también otro tarro famoso para leer archivos de Excel en Java y escribir archivos. Hoy en día, POI se utiliza en la mayoría de los proyectos, pero antes de POI, JXL era solo una API de Java para la manipulación de Excel. Es una API muy pequeña y simple para una excelente lectura en Selenium.
Consejos: Mi recomendación es no usar JXL en ningún proyecto nuevo porque la biblioteca no se ha desarrollado activamente desde 2010 y carece de la función en comparación con la API de POI.
Descarga JXL:
Si quieres trabajar con JXL, puedes descargarlo desde este enlace
https://sourceforge.net/projects/jexcelapi/files/jexcelapi/2.6.12/
Puede encontrar un ejemplo de demostración dentro de este archivo comprimido para JXL.
Algunas de las caracteristicas:
- JXL puede leer archivos de Excel en Selenium para el libro de trabajo 95, 97, 2000, XP, 2003.
- Podemos trabajar con inglés, francés, español, alemán.
- El gráfico se puede copiar e insertar una imagen en Excel
Desventaja:
- Solo podemos escribir Excel 97 y versiones posteriores (no se admite la escritura en Excel 95).
- JXL no admite el formato XLSX de archivos de Excel.
- Genera una hoja de cálculo en formato Excel 2000.
Resumen:
- Un archivo de Excel se puede leer mediante la operación Java IO. Con ese fin, debemos usarlo Tarro de puntos de interés de Apache.
- Un archivo de Excel contiene dos tipos de libros de trabajo, XLSX y XLS archivos.
- POI, Leaflet, Row, Cell tiene varios libros de trabajo de interfaz.
- Estas interfaces se implementan mediante correspondencia XLS (HSSFWork Workbook, HSSFSheet, HSSFRow, HSSFCell) y XLSX (Libro XSSFWork, XSSFSheet, XSSFRow, XSSFCell) clases de manipulación de archivos.
- JXL es otra API para manejar Excel en Selenium.
- JXL no puede funcionar con el formato de Excel XLSX.