Kuinka lukea/kirjoittaa tietoja Excel-tiedostosta: Selenium KP

Tiedoston IO on tärkeä osa mitä tahansa ohjelmistoprosessia. Luomme usein tiedoston, avaamme sen ja päivitämme jotain tai poistamme sen tietokoneistamme. Sama on asian kanssa Selenium Automaatio. Tarvitsemme prosessin tiedostojen käsittelyyn Selenium.

Java tarjoaa meille erilaisia ​​luokkia tiedostojen käsittelyyn Selenium. Tässä opetusohjelmassa opimme, kuinka voimme lukea ja kirjoittaa kunnostautua tiedosto avulla Java IO-paketti ja Apache POI-kirjasto.

Apache POI sisään Selenium

- Apache POI sisään Selenium on laajalti käytetty API seleenitietopohjaiseen testaukseen. Se on POI-kirjasto, johon on kirjoitettu Java joka antaa käyttäjille APIn manipulointia varten Microsoft asiakirjoja, kuten .xls ja .xlsx. Käyttäjät voivat helposti luoda, muokata ja lukea/kirjoittaa Excel-tiedostoja. POI on lyhenne sanoista "huono obfuscation Implementation".

Excelin vienti

Kuinka käsitellä Excel-tiedostoa POI:lla (Maven POM Dependency)

Käsittele Excel-tiedostoa POI:n avulla

Excel-tiedoston lukemiseen ja kirjoittamiseen Java, Apache tarjoaa erittäin kuuluisan kirjaston POI:n. Tämä kirjasto pystyy tarpeeksi lukemaan ja kirjoittamaan molempia XLS ja XLSX Excelin tiedostomuoto.

Lukea XLS tiedostot, an HSSF toteutuksen tarjoaa POI-kirjasto.

Lukea XLSX, XSSF toteutus KP kirjasto tulee olemaan valinta. Tutkitaanpa näitä toteutuksia yksityiskohtaisesti.

Jos käytät Mavenia projektissasi, Maven-riippuvuus on

Käsittele Excel-tiedostoa POI:n avulla

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

Tai voit yksinkertaisesti ladata uusimman version POI-purkit osoitteesta http://poi.apache.org/download.html & lataa uusin zip-tiedosto

Käsittele Excel-tiedostoa POI:n avulla

Kun lataat tämän purkin zip-tiedoston, sinun on purettava se ja lisättävä nämä kaikki purkit projektisi luokkapolkuun.

Käsittele Excel-tiedostoa POI:n avulla

Luokat ja käyttöliittymät POI:ssa

Luokat ja käyttöliittymät Apache POI:ssa
Luokat ja käyttöliittymät Apache POI:ssa

Seuraavassa on luettelo erilaisista Java Liitännät ja luokat KP lukemiseen XLS ja XLSX filee-

  • Työkirja: XSSFWorkbook- ja HSSFWorkbook-luokat toteuttavat tämän rajapinnan.
  • XSSF-työkirja: on XLSX-tiedoston luokkaesitys.
  • HSSF-työkirja: on XLS-tiedoston luokkaesitys.
  • arkki: XSSFSheet- ja HSSFSheet-luokat toteuttavat tämän rajapinnan.
  • XSSFS-lehti: Onko luokka, joka edustaa arkkia XLSX-tiedostossa.
  • HSSFS-lehti: Onko luokka, joka edustaa arkkia XLS-tiedostossa.
  • Rivi: XSSFRow- ja HSSFRow-luokat toteuttavat tämän rajapinnan.
  • XSSFRrow: Onko luokka, joka edustaa riviä XLSX-tiedoston arkissa.
  • HSSFRrow: Onko luokka, joka edustaa riviä XLS-tiedoston arkissa.
  • Solu: XSSFCell- ja HSSFCell-luokat toteuttavat tämän rajapinnan.
  • XSSFCell: Onko luokka, joka edustaa XLSX-tiedoston rivin solua.
  • HSSFCell: Onko luokka, joka edustaa XLS-tiedoston rivin solua.

Luku/kirjoitustoiminto

Esimerkissämme tarkastelemme alla annettua Excel-tiedostomuotoa

Lukea kirjoittaa OperaTUKSEN

Lue tiedot Excel-tiedostosta

Täydellinen esimerkki: Tässä yritämme lukea tietoja Excelistä 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");

    }

}

Huomautus: Emme käytä Testng puitteet täällä. Suorita luokka nimellä Java Sovellus, joka käyttää toimintoa read excel in Selenium kuten yllä olevassa esimerkissä näkyy.

Lue tiedot Excel-tiedostosta

Kirjoita tiedot Excel-tiedostoon

Täydellinen esimerkki: Tässä yritämme kirjoittaa tietoja Excel-tiedostosta lisäämällä uuden rivin Excel-tiedostoon

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

    }

}

Kirjoita tiedot Excel-tiedostoon

Excel-manipulaatio JXL API:lla

Excel-manipulaatio JXL API:lla

JXL on myös toinen kuuluisa purkki Excel-tiedoston lukemiseen Java ja tiedostojen kirjoittaminen. Nykyään POI on käytössä useimmissa projekteissa, mutta ennen POI:ta JXL oli vain Java API Excelin käsittelyyn. Se on erittäin pieni ja yksinkertainen API Excelin lukemiseen Selenium.

VINKKI: Ehdotukseni on olla käyttämättä JXL:ää missään uudessa projektissa, koska kirjastoa ei ole kehitetty aktiivisesti vuodesta 2010 lähtien ja ominaisuus puuttuu POI API:sta verrattuna.

Lataa JXL:

Jos haluat työskennellä JXL:n kanssa, voit ladata sen tästä linkistä

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

Excel-manipulaatio JXL API:lla

Voit myös saada esittelyesimerkin tämän JXL:n zip-tiedoston sisällä.

Jotkut ominaisuuksista:

  • JXL pystyy lukemaan Excel-tiedoston sisään Selenium 95, 97, 2000, XP, 2003 työkirjalle.
  • Pystymme työskentelemään englannin, ranskan, espanjan ja saksan kielellä.
  • Kaavion ja kuvan lisäys Excelissä on mahdollista

Haittapuoli:

  • Voimme kirjoittaa vain Excel 97:ssä ja uudemmissa (Excel 95:ssä kirjoittamista ei tueta).
  • JXL ei tue excel-tiedoston XLSX-muotoa.
  • Se luo laskentataulukon Excel 2000 -muodossa.

Yhteenveto

  • Excel-tiedosto voidaan lukea Java IO-toiminta. Sitä varten meidän on käytettävä Apache POI Jar.
  • Excel-tiedostossa on kahdenlaisia ​​työkirjoja, XLSX ja XLS tiedostoja.
  • POI:lla on eri käyttöliittymät työkirja, taulukko, rivi, solu.
  • Nämä rajapinnat toteutetaan vastaavilla XLS (HSSFWorkbook, HSSFSheet, HSSFRow, HSSFCell) Ja XLSX (XSSFWorkbook, XSSFSheet, XSSFRow, XSSFCell) tiedostojen käsittelyluokat.
  • JXL on toinen API Excelin käsittelyyn Selenium.
  • JXL ei toimi Excelin XLSX-muodon kanssa.