Cara Membaca / Menulis Data dari Fail Excel: Selenium POI

Fail IO adalah bahagian penting dari sebarang proses perisian. Kami sering membuat fail, membukanya & mengemas kini sesuatu atau menghapusnya di Komputer kami. Begitu juga dengan Automasi Selenium. Kami memerlukan proses untuk memanipulasi fail dengan Selenium.

Java menyediakan kelas yang berbeza untuk Manipulasi Fail dengan Selenium. Dalam tutorial ini, kita akan belajar bagaimana kita membaca dan menulis pada file Excel dengan bantuan pakej Java IO dan perpustakaan Apache POI.

Apache POI di Selenium

The Apache POI dalam Selenium ialah API digunakan secara meluas untuk data selenium didorong ujian. Ini adalah perpustakaan POI yang ditulis di Java yang memberi pengguna API untuk memanipulasi dokumen Microsoft seperti .xls dan .xlsx. Pengguna boleh membuat, mengubah suai dan membaca / menulis ke dalam fail excel dengan mudah. POI bermaksud "Pelaksanaan Penyamaran Buruk."

  • Cara mengendalikan fail excel menggunakan POI (Maven POM Dependency)
  • Kelas dan Antaramuka di POI
  • Operasi Baca / Tulis
  • Baca data dari fail Excel
  • Tulis data pada fail Excel
  • Manipulasi Excel menggunakan JXL API

Mengeksport Excel

Cara mengendalikan fail excel menggunakan POI (Maven POM Dependency)

Untuk Membaca dan Menulis fail Excel di Java, Apache menyediakan POI perpustakaan yang sangat terkenal. Perpustakaan ini cukup mampu membaca dan menulis format fail XLS dan XLSX Excel.

Untuk membaca fail XLS , pelaksanaan HSSF disediakan oleh perpustakaan POI.

Untuk membaca XLSX, pelaksanaan XSSF perpustakaan POI akan menjadi pilihan. Mari kaji pelaksanaan ini secara terperinci.

Sekiranya anda menggunakan Maven dalam projek anda, kebergantungan Maven akan berlaku

 org.apache.poi  poi  4.1.1 

Atau anda boleh memuat turun balang POI versi terbaru dari http://poi.apache.org/download.html & memuat turun fail zip terkini

Apabila anda memuat turun fail zip untuk balang ini, anda perlu membuka zipnya dan menambahkan semua balang ini ke jalan kelas projek anda.

Kelas dan Antaramuka dalam POI:

Kelas dan Antaramuka dalam Apache POI

Berikut adalah senarai yang berbeza Java Antaramuka dan kelas di POI untuk membaca XLS dan XLSX File-

  • Buku Kerja : Kelas XSSFWorkbook dan HSSFWorkbook melaksanakan antara muka ini.
  • XSSFWorkbook : Merupakan representasi kelas fail XLSX.
  • Buku HSSFWork : Merupakan representasi kelas fail XLS.
  • Helaian : Kelas XSSFSheet dan HSSFSheet melaksanakan antara muka ini.
  • XSSFSheet : Merupakan kelas yang mewakili helaian dalam fail XLSX.
  • Lembaran HSSF : Merupakan kelas yang mewakili helaian dalam fail XLS.
  • Row : Kelas XSSFRow dan HSSFRow melaksanakan antara muka ini.
  • XSSFRow : Merupakan kelas yang mewakili baris dalam helaian fail XLSX.
  • HSSFRow : Merupakan kelas yang mewakili baris dalam helaian fail XLS.
  • Sel : Kelas XSSFCell dan HSSFCell melaksanakan antara muka ini.
  • XSSFCell : Merupakan kelas yang mewakili sel dalam satu baris fail XLSX.
  • HSSFCell: Merupakan kelas yang mewakili sel dalam satu baris fail XLS.

Operasi Baca / Tulis-

Sebagai contoh, kami akan mempertimbangkan format fail Excel di bawah ini

Baca data dari fail Excel

Contoh Lengkap: Di sini kami cuba membaca data dari Excel di Selenium:

pakej 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;kelas awam ReadGuru99ExcelFile {awam kosongkan readExcel (String filePath, String fileName, String sheetName) melemparkan IOException {// Buat objek kelas Fail untuk membuka fail xlsxFail fail = Fail baru (filePath + "\\" + fileName);// Buat objek kelas FileInputStream untuk membaca fail excelFileInputStream inputStream = FileInputStream baru (fail);Buku kerja guru99Workbook = null;// Cari peluasan fail dengan membelah nama fail dalam substring dan hanya mendapatkan nama pelanjutanString fileExtensionName = fileName.substring (fileName.indexOf ("."));// Periksa keadaan jika fail tersebut adalah fail xlsxjika (fileExtensionName.equals (". xlsx")) {// Sekiranya ia adalah fail xlsx, buat objek kelas XSSFWorkbookguru99Workbook = XSSFWorkbook baru (inputStream);}// Periksa keadaan jika fail tersebut adalah fail xlslain jika (fileExtensionName.equals (". xls")) {// Sekiranya ia adalah fail xls, buat objek kelas HSSFWorkbookguru99Workbook = HSSFWorkbook baru (inputStream);}// Baca helaian di dalam buku kerja dengan namanyaLembaran guru99Sheet = guru99Workbook.getSheet (sheetName);// Cari bilangan baris dalam fail excelint rowCount = guru99Sheet.getLastRowNum () - guru99Sheet.getFirstRowNum ();// Buat gelung ke atas semua baris fail excel untuk membacanyauntuk (int i = 0; i 

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

Tulis data pada fail Excel

Contoh Lengkap: Di sini kami cuba menulis data dari fail Excel dengan menambahkan baris baru dalam fail Excel

pakej 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;kelas awam WriteGuru99ExcelFile {public void writeExcel (String filePath, String fileName, String sheetName, String [] dataToWrite) melemparkan IOException {// Buat objek kelas Fail untuk membuka fail xlsxFail fail = Fail baru (filePath + "\\" + fileName);// Buat objek kelas FileInputStream untuk membaca fail excelFileInputStream inputStream = FileInputStream baru (fail);Buku kerja guru99Workbook = null;// Cari peluasan fail dengan membelah nama fail dalam substring dan hanya mendapatkan nama pelanjutanString fileExtensionName = fileName.substring (fileName.indexOf ("."));// Periksa keadaan jika fail tersebut adalah fail xlsxjika (fileExtensionName.equals (". xlsx")) {// Sekiranya ia adalah fail xlsx, buat objek kelas XSSFWorkbookguru99Workbook = XSSFWorkbook baru (inputStream);}// Periksa keadaan jika fail tersebut adalah fail xlslain jika (fileExtensionName.equals (". xls")) {// Sekiranya ia adalah fail xls, buat objek kelas XSSFWorkbookguru99Workbook = HSSFWorkbook baru (inputStream);}// Baca helaian excel mengikut nama helaianLembaran helaian = guru99Workbook.getSheet (sheetName);// Dapatkan jumlah baris semasa dalam fail excelint rowCount = sheet.getLastRowNum () - sheet.getFirstRowNum ();// Dapatkan baris pertama dari helaianBaris baris = sheet.getRow (0);// Buat baris baru dan tambahkan baris terakhirRow newRow = sheet.createRow (rowCount + 1);// Buat gelung di atas sel Row yang baru dibuatuntuk (int j = 0; j 

Manipulasi Excel menggunakan JXL API

JXL juga merupakan balang terkenal lain untuk membaca fail Excel di Java dan menulis fail. Pada masa ini, POI digunakan dalam kebanyakan projek, tetapi sebelum POI, JXL hanya Java API untuk manipulasi Excel. Ini adalah API yang sangat kecil dan sederhana untuk bacaan cemerlang di Selenium.

TIPS: Cadangan saya adalah untuk tidak menggunakan JXL dalam projek baru kerana perpustakaan tidak dalam pembangunan aktif dari tahun 2010 dan kekurangan fitur berbanding dengan API POI.

Muat turun JXL:

Sekiranya anda ingin bekerjasama dengan JXL, anda boleh memuat turunnya dari pautan ini

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

Anda juga boleh mendapatkan contoh demo di dalam fail zip ini untuk JXL.

Beberapa ciri:

  • JXL dapat membaca fail Excel di Selenium untuk buku kerja 95, 97, 2000, XP, 2003.
  • Kami boleh bekerja dengan bahasa Inggeris, Perancis, Sepanyol, Jerman.
  • Menyalin Carta dan penyisipan gambar dalam Excel adalah mungkin

Kelemahan:

  • Kita boleh menulis Excel 97 dan yang lebih baru sahaja (penulisan dalam Excel 95 tidak disokong).
  • JXL tidak menyokong format file excel XLSX.
  • Ia Menghasilkan hamparan dalam format Excel 2000.

Ringkasan:

  • Fail Excel boleh dibaca dengan operasi Java IO. Untuk itu, kita perlu menggunakan Apache POI Jar .
  • Terdapat dua jenis buku kerja dalam fail Excel, fail XLSX dan XLS .
  • POI mempunyai Buku Kerja Antaramuka, Lembaran, Baris, Sel yang berbeza.
  • Antaramuka ini dilaksanakan oleh kelas manipulasi fail XLS ( HSSFWorkbook, HSSFSheet, HSSFRow, HSSFCell ) dan XLSX ( XSSFWorkbook, XSSFSheet, XSSFRow, XSSFCell ) yang sesuai.
  • JXL adalah API lain untuk pengendalian Excel di Selenium.
  • JXL tidak dapat berfungsi dengan format XLSX excel.

Artikel menarik...