Cara Membaca/Menulis Data dari File Excel: Selenium POI

File IO adalah bagian penting dari setiap proses perangkat lunak. Kami sering membuat file, membukanya & memperbarui sesuatu atau menghapusnya di Komputer kami. Sama halnya dengan Selenium Otomatisasi. Kita memerlukan proses untuk memanipulasi file Selenium.

Java memberi kita kelas yang berbeda untuk Manipulasi File Selenium. Dalam tutorial ini, kita akan belajar bagaimana kita bisa membaca dan menulis Excel file dengan bantuan Java Paket IO dan Apache perpustakaan POI.

Apache POI masuk Selenium

Apache POI masuk Selenium adalah API yang banyak digunakan untuk pengujian data selenium. Ini adalah pustaka POI yang ditulis dalam Java yang memberi pengguna API untuk memanipulasi Microsoft dokumen seperti .xls dan .xlsx. Pengguna dapat dengan mudah membuat, memodifikasi dan membaca/menulis ke dalam file excel. POI adalah singkatan dari “Implementasi Kebingungan yang Buruk.”

Mengekspor Excel

Cara menangani file excel menggunakan POI (Maven POM Dependency)

Tangani File Excel Menggunakan POI

Untuk Membaca dan Menulis file Excel Java, Apache menyediakan POI perpustakaan yang sangat terkenal. Perpustakaan ini cukup mampu untuk membaca dan menulis keduanya xls dan XLSX format file Excel.

Untuk membaca xls file, sebuah HSSF implementasi disediakan oleh perpustakaan POI.

Untuk membaca XLSX, XSSF implementasi dari POI perpustakaan akan menjadi pilihan. Mari kita pelajari implementasi ini secara detail.

Jika Anda menggunakan Maven dalam proyek Anda, ketergantungan Maven akan menjadi

Tangani File Excel Menggunakan POI

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

Atau Anda cukup mengunduh stoples POI versi terbaru dari http://poi.apache.org/download.html & unduh file zip terbaru

Tangani File Excel Menggunakan POI

Saat Anda mengunduh file zip untuk toples ini, Anda perlu mengekstraknya dan menambahkan semua toples ini ke jalur kelas proyek Anda.

Tangani File Excel Menggunakan POI

Kelas dan Antarmuka di POI

Kelas dan Antarmuka di Apache POI
Kelas dan Antarmuka di Apache POI

Berikut ini adalah daftar berbagai Java Antarmuka dan kelas di POI untuk dibaca xls dan XLSX fillet-

  • Buku catatan: Kelas XSSFWorkbook dan HSSFWorkbook mengimplementasikan antarmuka ini.
  • Buku Kerja XSSF: Merupakan representasi kelas dari file XLSX.
  • Buku Kerja HSSF: Merupakan representasi kelas dari file XLS.
  • lembar: Kelas XSSFSheet dan HSSFSheet mengimplementasikan antarmuka ini.
  • Lembar XSSF: Merupakan kelas yang mewakili sheet dalam file XLSX.
  • Lembar HSSF: Merupakan kelas yang mewakili sheet dalam file XLS.
  • Baris: Kelas XSSFrow dan HSSFrow mengimplementasikan antarmuka ini.
  • XSSFRow: Merupakan kelas yang mewakili sebuah baris pada sheet file XLSX.
  • HSSFRow: Merupakan kelas yang mewakili sebuah baris pada sheet file XLS.
  • Sel: Kelas XSSFCell dan HSSFCell mengimplementasikan antarmuka ini.
  • XSSFCell: Merupakan kelas yang mewakili sel dalam deretan file XLSX.
  • HSSFCell: Merupakan kelas yang mewakili sel dalam deretan file XLS.

Operasi Baca/Tulis

Sebagai contoh, kami akan mempertimbangkan format file Excel yang diberikan di bawah ini

Baca tulis Operaproduksi

Membaca data dari file Excel

Contoh Lengkap : Disini kita mencoba membaca data dari excel di 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");

    }

}

Catatan: Kami tidak menggunakan Pengujian kerangka di sini. Jalankan kelas sebagai Java Aplikasi menggunakan fungsi read excel in Selenium seperti yang ditunjukkan pada contoh di atas.

Baca Data dari File Excel

Tulis data pada file Excel

Contoh Lengkap: Di sini kita mencoba menulis data dari file Excel dengan menambahkan baris baru di file 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);

    }

}

Tulis Data Pada File Excel

Manipulasi Excel menggunakan JXL API

Manipulasi Excel Menggunakan JXL API

JXL juga merupakan toples terkenal lainnya untuk membaca file Excel Java dan menulis file. Saat ini, POI digunakan di sebagian besar proyek, tetapi sebelum POI, JXL hanya digunakan Java API untuk manipulasi Excel. Ini adalah API yang sangat kecil dan sederhana untuk membaca excel Selenium.

TIPS: Saran saya adalah untuk tidak menggunakan JXL dalam proyek baru karena perpustakaan tidak dalam pengembangan aktif dari tahun 2010 dan kurangnya fitur dibandingkan dengan POI API.

Unduh JXL:

Jika Anda ingin bekerja dengan JXL, Anda dapat mendownloadnya dari link ini

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

Manipulasi Excel Menggunakan JXL API

Anda juga bisa mendapatkan contoh demo di dalam file zip untuk JXL ini.

Beberapa fitur:

  • JXL dapat membaca file Excel di Selenium untuk buku kerja 95, 97, 2000, XP, 2003.
  • Kami dapat bekerja dengan bahasa Inggris, Perancis, Spanyol, Jerman.
  • Menyalin Bagan dan penyisipan gambar di Excel dimungkinkan

Kekurangan:

  • Kita hanya dapat menulis Excel 97 dan yang lebih baru (penulisan dalam Excel 95 tidak didukung).
  • JXL tidak mendukung format file excel XLSX.
  • Ini Menghasilkan spreadsheet dalam format Excel 2000.

Ringkasan

  • File Excel dapat dibaca Java Operasi IO. Untuk itu, kita perlu menggunakan Toples Apache POI.
  • Ada dua jenis buku kerja dalam file Excel, XLSX dan xls file.
  • POI memiliki Antarmuka Buku Kerja, Lembar, Baris, Sel yang berbeda.
  • Antarmuka ini diimplementasikan sesuai xls (Buku Kerja HSSF, HSSFSheet, HSSFRow, HSSFCell) Dan XLSX (Buku Kerja XSSF, XSSFSheet, XSSFRow, XSSFCell) kelas manipulasi file.
  • JXL adalah API lain untuk penanganan Excel Selenium.
  • JXL tidak dapat bekerja dengan format excel XLSX.