Kako čitati / pisati podatke iz datoteke Excel: POI selena

Sadržaj:

Anonim

Datoteka IO je kritični dio svakog softverskog procesa. Često stvaramo datoteku, otvaramo je i nešto ažuriramo ili brišemo na našim računalima. Isti je slučaj sa Selenium Automation. Trebamo postupak za upravljanje datotekama pomoću selena.

Java nam nudi različite klase za manipulaciju datotekama sa selenom. U ovom uputstvu naučit ćemo kako možemo čitati i pisati u Excel datoteci uz pomoć Java IO paketa i Apache POI knjižnice.

Apache POI u selenu

Apache POI u selena je naširoko koristi API za selena temelju podataka ispitivanja. To je POI knjižnica napisana na Javi koja korisnicima daje API za manipulaciju Microsoftovim dokumentima poput .xls i .xlsx. Korisnici mogu lako stvarati, mijenjati i čitati / pisati u excel datoteke. POI je kratica za „Loša primjena zamućenja“.

  • Kako postupati s excel datotekom koristeći POI (Maven POM Dependency)
  • Predavanja i sučelja u POI
  • Operacija čitanja / pisanja
  • Čitanje podataka iz Excel datoteke
  • Zapišite podatke u Excel datoteku
  • Excel manipulacija pomoću JXL API-ja

Izvoz Excel-a

Kako postupati s excel datotekom koristeći POI (Maven POM Dependency)

Za čitanje i pisanje Excel datoteke na Javi, Apache nudi vrlo poznate točke interesa u biblioteci. Ova je knjižnica dovoljno sposobna za čitanje i pisanje formata datoteka XLS i XLSX u programu Excel.

POI knjižnica omogućuje čitanje XLS datoteka, HSSF implementaciju.

Za čitanje XLSX-a odabir će biti implementacija XSSF- a POI biblioteke . Proučimo ove implementacije detaljno.

Ako u projektu koristite Maven, ovisit će o Mavenu

 org.apache.poi  poi  4.1.1 

Ili jednostavno možete preuzeti najnoviju verziju POI staklenki s http://poi.apache.org/download.html i preuzeti najnoviju zip datoteku

Kada preuzmete zip datoteku za ovu staklenku, trebate je otpakirati i dodati sve ove staklenke na put predavanja vašeg projekta.

Predavanja i sučelja u POI:

Predavanja i sučelja u Apache POI

Slijedi popis različitih Java sučelja i klasa u POI za čitanje XLS i XLSX datoteka-

  • Radna knjiga : Klase XSSFWorkbook i HSSFWorkbook implementiraju ovo sučelje.
  • XSSFWorkbook : Je li klasa prikaz XLSX datoteke.
  • HSSFWorkbook : Je li predstavljanje klase XLS datoteke.
  • List : Klase XSSFSheet i HSSFSheet implementiraju ovo sučelje.
  • XSSFSheet : Je li klasa koja predstavlja list u XLSX datoteci.
  • HSSFSheet : Je li klasa koja predstavlja list u XLS datoteci.
  • Redak : Klase XSSFRow i HSSFRow implementiraju ovo sučelje.
  • XSSFRow : Je li klasa koja predstavlja red u listu XLSX datoteke.
  • HSSFRow : Je li klasa koja predstavlja red u listu XLS datoteke.
  • Ćelija : Klase XSSFCell i HSSFCell implementiraju ovo sučelje.
  • XSSFCell : Je li klasa koja predstavlja ćeliju u nizu XLSX datoteke.
  • HSSFCell: Je li klasa koja predstavlja ćeliju u nizu XLS datoteke.

Operacija čitanja / pisanja-

Za naš ćemo primjer u nastavku razmotriti zadani format datoteke Excel

Čitanje podataka iz Excel datoteke

Potpuni primjer: Ovdje pokušavamo pročitati podatke iz Excela u seleniju:

paket 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;javna klasa ReadGuru99ExcelFile {javna praznina readExcel (String filePath, String fileName, String sheetName) baca IOException {// Stvaranje objekta klase File za otvaranje xlsx datotekeDatoteka datoteke = nova datoteka (filePath + "\\" + fileName);// Stvorimo objekt klase FileInputStream za čitanje excel datotekeFileInputStream inputStream = novi FileInputStream (datoteka);Radna bilježnica guru99Workbook = null;// Pronađite ekstenziju datoteke dijeljenjem imena datoteke u podniz i dobivanjem samo imena ekstenzijeNiz fileExtensionName = fileName.substring (fileName.indexOf ("."));// Provjeri stanje je li datoteka xlsx datotekaif (fileExtensionName.equals (". xlsx")) {// Ako je datoteka xlsx, onda stvorite objekt klase XSSFWorkbookguru99Workbook = nova XSSFWorkbook (inputStream);}// Provjeri stanje je li datoteka xls datotekainače ako (fileExtensionName.equals (". xls")) {// Ako je datoteka xls, onda stvorite objekt klase HSSFWorkbookguru99Workbook = nova HSSFWorkbook (inputStream);}// Čitanje lista unutar radne knjige pod njegovim nazivomList guru99Sheet = guru99Workbook.getSheet (listName);// Pronađi broj redaka u excel datoteciint rowCount = guru99Sheet.getLastRowNum () - guru99Sheet.getFirstRowNum ();// Stvorite petlju preko svih redova datoteke excel da biste je pročitalifor (int i = 0; i 

Napomena: Ovdje ne koristimo okvir Testng. Pokrenite klasu kao Java aplikaciju pomoću funkcije read excel u Seleniju kao što je prikazano u gornjem primjeru.

Zapišite podatke u Excel datoteku

Potpuni primjer: Ovdje pokušavamo upisati podatke iz datoteke Excel dodavanjem novog retka u datoteku Excel

paket excelExportAndFileIO;import java.io.File;import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.IOException;import org.apache.poi.hssf.usermodel.HSSFWorkbook;uvoz 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;javna klasa WriteGuru99ExcelFile {public void writeExcel (String filePath, String fileName, String sheetName, String [] dataToWrite) baca IOException {// Stvaranje objekta klase File za otvaranje xlsx datotekeDatoteka datoteke = nova datoteka (filePath + "\\" + fileName);// Stvorimo objekt klase FileInputStream za čitanje excel datotekeFileInputStream inputStream = novi FileInputStream (datoteka);Radna bilježnica guru99Workbook = null;// Pronađite ekstenziju datoteke dijeljenjem imena datoteke u podniz i dobivanjem samo imena ekstenzijeNiz fileExtensionName = fileName.substring (fileName.indexOf ("."));// Provjeri stanje je li datoteka xlsx datotekaif (fileExtensionName.equals (". xlsx")) {// Ako je datoteka xlsx, onda stvorite objekt klase XSSFWorkbookguru99Workbook = nova XSSFWorkbook (inputStream);}// Provjeri stanje je li datoteka xls datotekainače ako (fileExtensionName.equals (". xls")) {// Ako je datoteka xls, onda stvorite objekt klase XSSFWorkbookguru99Workbook = nova HSSFWorkbook (inputStream);}// Pročitajte excel list po nazivu listaList listova = guru99Workbook.getSheet (listName);// Dohvatimo trenutni broj redaka u excel datoteciint rowCount = sheet.getLastRowNum () - sheet.getFirstRowNum ();// Dohvatimo prvi red s listaRed reda = list.getRow (0);// Stvorite novi redak i dodajte ga na kraju listaRed newRow = list.createRow (rowCount + 1);// Stvaranje petlje preko ćelije novostvorenog retkaza (int j = 0; j 

Excel manipulacija pomoću JXL API-ja

JXL je također još jedna poznata jar za čitanje Excel datoteke na Javi i pisanje datoteka. Danas se POI koristi u većini projekata, ali prije POI-a, JXL je bio samo Java API za Excel manipulaciju. To je vrlo mali i jednostavan API za izvrsno čitanje u selenu.

SAVJETI: Moj prijedlog je da se JXL ne koristi u bilo kojem novom projektu, jer knjižnica nije u aktivnom razvoju od 2010. godine i nedostatak značajke u usporedbi s POI API-jem.

Preuzmite JXL:

Ako želite raditi s JXL-om, možete ga preuzeti s ove poveznice

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

U ovoj zip datoteci za JXL također možete dobiti demo primjer.

Neke značajke:

  • JXL može čitati Excel datoteku u seleniju za radne knjige 95, 97, 2000, XP, 2003.
  • Možemo raditi s engleskim, francuskim, španjolskim, njemačkim.
  • Moguće je kopiranje grafikona i umetanje slike u Excel

Nedostatak:

  • Možemo pisati samo Excel 97 i novije verzije (pisanje u programu Excel 95 nije podržano).
  • JXL ne podržava XLSX format excel datoteke.
  • Izrađuje proračunsku tablicu u formatu Excel 2000.

Sažetak:

  • Datoteka Excel može se čitati Java IO operacijom. Za to trebamo koristiti Apache POI Jar .
  • Postoje dvije vrste radne knjige u Excel datoteci, XLSX i XLS datoteke.
  • POI ima različita sučelja Workbook, Sheet, Red, Cell.
  • Ova sučelja implementirana su odgovarajućim klasama manipulacije datotekama XLS ( HSSFWorkbook, HSSFSheet, HSSFRow, HSSFCell ) i XLSX ( XSSFWorkbook, XSSFSheet, XSSFRow, XSSFCell ).
  • JXL je još jedan API za rukovanje Excelom u seleniju.
  • JXL ne može raditi s XLSX formatom excela.