File IO adalah bagian penting dari proses perangkat lunak apa pun. Kami sering membuat file, membukanya & memperbarui sesuatu atau menghapusnya di Komputer kami. Sama halnya dengan Otomasi Selenium. Kami membutuhkan proses untuk memanipulasi file dengan Selenium.
Java memberi kita kelas yang berbeda untuk Manipulasi File dengan Selenium. Dalam tutorial ini, kita akan belajar bagaimana kita bisa membaca dan menulis pada file Excel dengan bantuan paket Java IO dan pustaka Apache POI.
Apache POI di Selenium
The Apache POI di Selenium adalah API banyak digunakan untuk data selenium didorong pengujian. Ini adalah pustaka POI yang ditulis di Java yang memberi pengguna API untuk memanipulasi dokumen Microsoft seperti .xls dan .xlsx. Pengguna dapat dengan mudah membuat, memodifikasi dan membaca / menulis ke dalam file excel. POI adalah singkatan dari "Penerapan Kebingungan yang Buruk".
- Cara menangani file excel menggunakan POI (Maven POM Dependency)
- Kelas dan Antarmuka dalam POI
- Operasi Baca / Tulis
- Membaca data dari file Excel
- Tulis data pada file Excel
- Manipulasi Excel menggunakan JXL API
Mengekspor Excel
Cara menangani file excel menggunakan POI (Maven POM Dependency)
Untuk Membaca dan Menulis file Excel di Java, Apache menyediakan POI library yang sangat terkenal. Pustaka ini cukup mampu untuk membaca dan menulis format file XLS dan XLSX dari Excel.
Untuk membaca file XLS , implementasi HSSF disediakan oleh perpustakaan POI.
Untuk membaca XLSX, implementasi XSSF dari perpustakaan POI akan menjadi pilihan. Mari pelajari implementasi ini secara mendetail.
Jika Anda menggunakan Maven dalam proyek Anda, ketergantungan Maven akan
org.apache.poi poi 4.1.1
Atau Anda cukup mengunduh toples POI versi terbaru dari http://poi.apache.org/download.html & unduh file zip terbaru
Saat Anda mengunduh file zip untuk jar ini, Anda perlu mengekstraknya dan menambahkan semua toples ini ke jalur kelas proyek Anda.
Kelas dan Antarmuka dalam POI:
Berikut ini adalah daftar Java Interfaces dan kelas yang berbeda di POI untuk membaca file XLS dan XLSX-
- Buku Kerja : Kelas XSSFWorkbook dan HSSFWorkbook mengimplementasikan antarmuka ini.
- XSSFWorkbook : Merupakan representasi kelas dari file XLSX.
- HSSFWorkbook : Merupakan representasi kelas dari file XLS.
- Sheet : Kelas XSSFSheet dan HSSFSheet mengimplementasikan antarmuka ini.
- XSSFSheet : Adalah kelas yang mewakili lembar dalam file XLSX.
- HSSFSheet : Merupakan kelas yang mewakili sheet dalam file XLS.
- Baris : Kelas XSSFRow dan HSSFRow mengimplementasikan antarmuka ini.
- XSSFRow : Merupakan kelas yang mewakili baris di lembar file XLSX.
- HSSFRow : Merupakan kelas yang merepresentasikan baris dalam lembar file XLS.
- Sel : Kelas XSSFCell dan HSSFCell menerapkan antarmuka ini.
- XSSFCell : Merupakan kelas yang mewakili sel dalam deretan file XLSX.
- HSSFCell: Merupakan kelas yang merepresentasikan sel dalam deretan file XLS.
Operasi Baca / Tulis-
Untuk contoh kami, kami akan mempertimbangkan format file Excel yang diberikan di bawah ini
Membaca data dari file Excel
Contoh Lengkap: Di sini kami mencoba membaca data dari Excel di Selenium:
paket excelExportAndFileIO;impor java.io.File;impor java.io.FileInputStream;impor java.io.IOException;impor org.apache.poi.hssf.usermodel.HSSFWorkbook;impor org.apache.poi.ss.usermodel.Row;impor org.apache.poi.ss.usermodel.Sheet;impor org.apache.poi.ss.usermodel.Workbook;impor org.apache.poi.xssf.usermodel.XSSFWorkbook;public class ReadGuru99ExcelFile {public void readExcel (String filePath, String fileName, String sheetName) menampilkan IOException {// Buat objek kelas File untuk membuka file xlsxFile file = File baru (filePath + "\\" + fileName);// Buat objek kelas FileInputStream untuk membaca file excelFileInputStream inputStream = FileInputStream baru (file);Buku kerja guru99Workbook = null;// Temukan ekstensi file dengan memisahkan nama file dalam substring dan hanya mendapatkan nama ekstensiString fileExtensionName = fileName.substring (fileName.indexOf ("."));// Periksa kondisi apakah file tersebut adalah file xlsxif (fileExtensionName.equals (". xlsx")) {// Jika ini adalah file xlsx maka buatlah objek kelas XSSFWorkbookguru99Workbook = XSSFWorkbook baru (inputStream);}// Periksa kondisi apakah file tersebut adalah file xlselse if (fileExtensionName.equals (". xls")) {// Jika ini adalah file xls maka buatlah objek kelas HSSFWorkbookguru99Workbook = HSSFWorkbook baru (inputStream);}// Baca sheet di dalam workbook dengan namanyaSheet guru99Sheet = guru99Workbook.getSheet (sheetName);// Temukan jumlah baris di file excelint rowCount = guru99Sheet.getLastRowNum () - guru99Sheet.getFirstRowNum ();// Buat loop di semua baris file excel untuk membacanyauntuk (int i = 0; iCatatan: Kami tidak menggunakan kerangka kerja Testng di sini. Jalankan kelas sebagai Aplikasi Java menggunakan fungsi baca excel di Selenium seperti yang ditunjukkan pada contoh di atas.
Tulis data pada file Excel
Contoh Lengkap: Di sini kami mencoba menulis data dari file Excel dengan menambahkan baris baru di file Excel
paket excelExportAndFileIO;impor java.io.File;impor java.io.FileInputStream;impor java.io.FileOutputStream;impor java.io.IOException;impor org.apache.poi.hssf.usermodel.HSSFWorkbook;impor org.apache.poi.ss.usermodel.Cell;impor org.apache.poi.ss.usermodel.Row;impor org.apache.poi.ss.usermodel.Sheet;impor org.apache.poi.ss.usermodel.Workbook;impor org.apache.poi.xssf.usermodel.XSSFWorkbook;public class WriteGuru99ExcelFile {public void writeExcel (String filePath, String fileName, String sheetName, String [] dataToWrite) melempar IOException {// Buat objek kelas File untuk membuka file xlsxFile file = File baru (filePath + "\\" + fileName);// Buat objek kelas FileInputStream untuk membaca file excelFileInputStream inputStream = FileInputStream baru (file);Buku kerja guru99Workbook = null;// Temukan ekstensi file dengan memisahkan nama file dalam substring dan hanya mendapatkan nama ekstensiString fileExtensionName = fileName.substring (fileName.indexOf ("."));// Periksa kondisi apakah file tersebut adalah file xlsxif (fileExtensionName.equals (". xlsx")) {// Jika ini adalah file xlsx maka buatlah objek kelas XSSFWorkbookguru99Workbook = XSSFWorkbook baru (inputStream);}// Periksa kondisi apakah file tersebut adalah file xlselse if (fileExtensionName.equals (". xls")) {// Jika ini adalah file xls maka buatlah objek kelas XSSFWorkbookguru99Workbook = HSSFWorkbook baru (inputStream);}// Baca excel sheet dengan nama sheetLembar lembar = guru99Workbook.getSheet (sheetName);// Dapatkan jumlah baris saat ini dalam file excelint rowCount = sheet.getLastRowNum () - sheet.getFirstRowNum ();// Dapatkan baris pertama dari sheetBaris baris = sheet.getRow (0);// Buat baris baru dan tambahkan di akhir lembarBaris newRow = sheet.createRow (rowCount + 1);// Buat loop di atas sel Row yang baru dibuatuntuk (int j = 0; jManipulasi Excel menggunakan JXL API
JXL juga merupakan toples terkenal lainnya untuk membaca file Excel di Java dan menulis file. Saat ini, POI digunakan di sebagian besar proyek, tetapi sebelum POI, JXL hanyalah Java API untuk manipulasi Excel. Ini adalah API yang sangat kecil dan sederhana untuk membaca excel di 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 mengunduhnya dari tautan ini
https://sourceforge.net/projects/jexcelapi/files/jexcelapi/2.6.12/
Anda juga bisa mendapatkan contoh demo di dalam file zip ini untuk JXL.
Beberapa fitur:
- JXL mampu membaca file Excel di Selenium untuk buku kerja 95, 97, 2000, XP, 2003.
- Kami dapat bekerja dengan bahasa Inggris, Prancis, Spanyol, Jerman.
- Menyalin Bagan dan penyisipan gambar di Excel dimungkinkan
Kekurangan:
- Kami hanya dapat menulis Excel 97 dan yang lebih baru (penulisan di Excel 95 tidak didukung).
- JXL tidak mendukung format file excel XLSX.
- Ini Menghasilkan spreadsheet dalam format Excel 2000.
Ringkasan:
- File Excel dapat dibaca dengan operasi Java IO. Untuk itu, kita perlu menggunakan Apache POI Jar .
- Ada dua jenis buku kerja di file Excel, file XLSX dan XLS .
- POI memiliki Buku Kerja Antarmuka, Lembar, Baris, Sel yang berbeda.
- Antarmuka ini diimplementasikan oleh kelas manipulasi file XLS ( HSSFWorkbook, HSSFSheet, HSSFRow, HSSFCell ) dan XLSX ( XSSFWorkbook, XSSFSheet, XSSFRow, XSSFCell ) yang sesuai.
- JXL adalah API lain untuk penanganan Excel di Selenium.
- JXL tidak dapat bekerja dengan format XLSX excel.