Kuidas lugeda/kirjutada andmeid Exceli failist: Selenium POI

Faili IO on mis tahes tarkvaraprotsessi oluline osa. Loome sageli faili, avame selle ja värskendame midagi või kustutame selle oma arvutitest. Sama lugu on Selenium Automatiseerimine. Vajame failidega manipuleerimiseks protsessi Selenium.

Java pakub meile failiga manipuleerimiseks erinevaid klasse Selenium. Selles õpetuses õpime, kuidas saame edasi lugeda ja kirjutada Excel faili abiga Java IO pakett ja Apache POI raamatukogu.

Apache POI sisse Selenium

. Apache POI sisse Selenium on seleeni andmepõhise testimise jaoks laialdaselt kasutatav API. See on POI-teek, mis on sisse kirjutatud Java mis annab kasutajatele manipuleerimiseks API Microsoft dokumendid nagu .xls ja .xlsx. Kasutajad saavad hõlpsasti Exceli faile luua, muuta ja lugeda/kirjutada. POI tähistab "halva hägustamise rakendamist".

Exceli eksportimine

Kuidas käsitleda Exceli faili POI-ga (Maven POM Dependency)

Exceli faili haldamine POI abil

Exceli faili lugemiseks ja kirjutamiseks Java, Apache pakub väga kuulsat raamatukogu POI-d. See raamatukogu on piisavalt võimeline nii lugemiseks kui ka kirjutamiseks XLS ja XLSX Exceli failivormingus.

Lugema XLS failid, an HSSF teostuse pakub POI raamatukogu.

Lugema XLSX, XSSF rakendamine POI raamatukogu saab olema valik. Uurime neid rakendusi üksikasjalikult.

Kui kasutate oma projektis Mavenit, on Maveni sõltuvus

Exceli faili haldamine POI abil

<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
<version>4.1.1</version>
</dependency>

Või võite lihtsalt alla laadida veebilehelt POI purkide uusima versiooni http://poi.apache.org/download.html & laadige alla uusim ZIP-fail

Exceli faili haldamine POI abil

Kui laadite alla selle purgi ZIP-faili, peate selle lahti pakkima ja lisama need kõik purgid oma projekti klassiteele.

Exceli faili haldamine POI abil

POI klassid ja liidesed

Klassid ja liidesed Apache POI-s
Klassid ja liidesed Apache POI-s

Järgnevalt on nimekiri erinevatest Java Liidesed ja klassid POI lugemiseks XLS ja XLSX filee-

  • Töövihik: XSSFWorkbook ja HSSFWorkbook klassid rakendavad seda liidest.
  • XSSF tööraamat: on XLSX-faili klassi esitus.
  • HSSF tööraamat: on XLS-faili klassi esitus.
  • leht: XSSFSheet ja HSSFSheet klassid rakendavad seda liidest.
  • XSSFSheet: on klass, mis esindab lehte XLSX-failis.
  • HSSFS-leht: on klass, mis esindab lehte XLS-failis.
  • Rida: XSSFRow ja HSSFRow klassid rakendavad seda liidest.
  • XSSFRrow: on klass, mis esindab rida XLSX-faili lehel.
  • HSSFRrow: on klass, mis esindab rida XLS-faili lehel.
  • Rakk: XSSFCell ja HSSFCell klassid rakendavad seda liidest.
  • XSSFCell: on klass, mis esindab lahtrit XLSX-faili reas.
  • HSSFCell: Kas klass, mis esindab XLS-faili rea lahtrit.

Lugemis-/kirjutusoperatsioon

Meie näite puhul käsitleme allpool antud Exceli failivormingut

Lugema kirjutama Operamine

Lugege andmeid Exceli failist

Täielik näide: siin proovime lugeda Exceli andmeid 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");

    }

}

Märkus: me ei kasuta Testng raamistik siin. Käivitage klass kui Java Rakendus, mis kasutab funktsiooni Loe Excel sisse Selenium nagu on näidatud ülaltoodud näites.

Lugege andmeid Exceli failist

Kirjutage andmed Exceli faili

Täielik näide: siin proovime kirjutada andmeid Exceli failist, lisades Exceli faili uue rea

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);

    }

}

Kirjutage andmed Exceli faili

Exceli manipuleerimine JXL API abil

Exceli manipuleerimine JXL API abil

JXL on ka teine ​​​​kuulus purk Exceli faili lugemiseks Java ja failide kirjutamine. Tänapäeval kasutatakse POI-d enamikes projektides, kuid enne POI-d oli ainult JXL Java API Exceli manipuleerimiseks. See on väga väike ja lihtne API Exceli lugemiseks Selenium.

NÕUANDED. Minu soovitus on mitte kasutada JXL-i üheski uues projektis, kuna raamatukogu ei ole alates 2010. aastast aktiivses arenduses ja funktsiooni puudumine võrreldes POI API-ga.

Laadige alla JXL:

Kui soovite töötada JXL-iga, saate selle sellelt lingilt alla laadida

https://sourceforge.net/projects/jexcelapi/files/jexcelapi/2.6.12/

Exceli manipuleerimine JXL API abil

Selle JXL-i pakitud faili seest saate ka demonäidise.

Mõned funktsioonid:

  • JXL suudab Exceli faili sisse lugeda Selenium 95, 97, 2000, XP, 2003 töövihiku jaoks.
  • Saame töötada inglise, prantsuse, hispaania, saksa keelega.
  • Diagrammi ja pildi sisestamine Excelis on võimalik

Puudus:

  • Saame kirjutada ainult Excel 97 ja uuemad versioonid (Excel 95 kirjutamist ei toetata).
  • JXL ei toeta Exceli faili XLSX-vormingut.
  • See loob arvutustabeli Excel 2000 vormingus.

kokkuvõte

  • Exceli faili saab lugeda Java IO operatsioon. Selleks peame kasutama Apache POI Jar.
  • Exceli failis on kahte tüüpi töövihikuid, XLSX ja XLS faile.
  • HP-l on erinevad liidesed töövihik, leht, rida, lahter.
  • Need liidesed on rakendatud vastavate XLS (HSSFWorkbook, HSSFSheet, HSSFRow, HSSFCell) Ja XLSX (XSSFWorkbook, XSSFSheet, XSSFRow, XSSFCell) failiga manipuleerimise klassid.
  • JXL on veel üks API Exceli haldamiseks Selenium.
  • JXL ei saa töötada Exceli XLSX-vorminguga.