Файл IO е критична част от всеки софтуерен процес. Често създаваме файл, отваряме го и актуализираме нещо или го изтриваме в нашите Компютри. Същият е случаят и с Selenium Automation. Нуждаем се от процес за манипулиране на файлове със Selenium.
Java ни предоставя различни класове за управление на файлове със селен. В този урок ще научим как можем да четем и пишем в Excel файл с помощта на Java IO пакета и Apache POI библиотеката.
Apache POI в селен
The Apache POI в Селенът е широко използван API за данни селен задвижвани тестване. Това е POI библиотека, написана на Java, която дава на потребителите API за манипулиране на документи на Microsoft като .xls и .xlsx. Потребителите могат лесно да създават, променят и четат / пишат в Excel файлове. POI означава „Лошо изпълнение на замъгляването“.
- Как да се справям с Excel файл, използвайки POI (Maven POM Dependency)
- Класове и интерфейси в POI
- Операция за четене / запис
- Прочетете данни от файл на Excel
- Запишете данни в Excel файл
- Excel манипулация с помощта на JXL API
Експортиране на Excel
Как да се справям с Excel файл, използвайки POI (Maven POM Dependency)
За да четете и пишете файл на Excel в Java, Apache предоставя много известна POI за библиотека. Тази библиотека е достатъчно способна да чете и пише както XLS, така и XLSX файлов формат на Excel.
За четене на XLS файлове се осигурява изпълнение на HSSF от POI библиотека.
За да прочетете XLSX, XSSF внедряването на POI библиотека ще бъде изборът. Нека да проучим подробно тези изпълнения.
Ако използвате Maven във вашия проект, зависимостта на Maven ще бъде
<зависимост>org.apache.poi poi 4.1.1
Или можете просто да изтеглите най-новата версия POI буркани от http://poi.apache.org/download.html и да изтеглите най-новия zip файл
Когато изтегляте zip файла за този буркан, трябва да го разархивирате и да добавите всички тези буркани към пътя на класа на вашия проект.
Класове и интерфейси в POI:

Следва списък на различни Java интерфейси и класове в POI за четене на XLS и XLSX файл-
- Работна книга : Класовете XSSFWorkbook и HSSFWorkbook изпълняват този интерфейс.
- XSSFWorkbook : Представлява клас на XLSX файл.
- HSSFWorkbook : Представлява клас на XLS файл.
- Sheet : Класовете XSSFSheet и HSSFSheet изпълняват този интерфейс.
- XSSFSheet : Това е клас, представляващ лист в XLSX файл.
- HSSFSheet : Е клас, представляващ лист в XLS файл.
- Ред : Класовете XSSFRow и HSSFRow изпълняват този интерфейс.
- XSSFRow : Е клас, представляващ ред в листа на XLSX файл.
- HSSFRow : Е клас, представляващ ред в листа на XLS файл.
- Cell : Класовете XSSFCell и HSSFCell изпълняват този интерфейс.
- XSSFCell : Е клас, представляващ клетка в ред от XLSX файл.
- HSSFCell: Е клас, представляващ клетка в ред от XLS файл.
Операция за четене / запис-
За нашия пример ще разгледаме дадения по-долу файлов формат на Excel
Прочетете данни от файл на Excel
Пълен пример: Тук се опитваме да прочетем данни от Excel в Селен:
пакет excelExportAndFileIO;import java.io.File;импортиране на java.io.FileInputStream;импортиране на java.io.IOException;внос org.apache.poi.hssf.usermodel.HSSFWorkbook;внос org.apache.poi.ss.usermodel.Row;внос org.apache.poi.ss.usermodel.Sheet;внос org.apache.poi.ss.usermodel.Workbook;импортиране org.apache.poi.xssf.usermodel.XSSFWorkbook;публичен клас ReadGuru99ExcelFile {public void readExcel (String filePath, String fileName, String sheetName) хвърля IOException {// Създаване на обект от клас File за отваряне на xlsx файлФайлов файл = нов файл (filePath + "\\" + fileName);// Създаване на обект от клас FileInputStream за четене на Excel файлFileInputStream inputStream = нов FileInputStream (файл);Работна книга guru99Workbook = null;// Намерете разширението на файла, като разделите името на файла в подниза и получите само име на разширениеString fileExtensionName = fileName.substring (fileName.indexOf ("."));// Проверяваме състоянието дали файлът е xlsx файлif (fileExtensionName.equals (". xlsx")) {// Ако това е xlsx файл, тогава създайте обект от класа XSSFWorkbookguru99Workbook = нов XSSFWorkbook (inputStream);}// Проверяваме дали файлът е xls файлиначе ако (fileExtensionName.equals (". xls")) {// Ако е xls файл, тогава създайте обект от клас HSSFWorkbookguru99Workbook = нов HSSFWorkbook (inputStream);}// Прочетете листа в работната книга по името муЛист guru99Sheet = guru99Workbook.getSheet (sheetName);// Намерете броя на редовете в Excel файлаint rowCount = guru99Sheet.getLastRowNum () - guru99Sheet.getFirstRowNum ();// Създайте цикъл върху всички редове на Excel файла, за да го прочететеза (int i = 0; iЗабележка: Тук не използваме рамката на Testng. Стартирайте класа като Java Application, като използвате функцията read excel в Selenium, както е показано в горния пример.
Запишете данни в Excel файл
Пълен пример: Тук се опитваме да запишем данни от файл на Excel чрез добавяне на нов ред във файл на Excel
пакет excelExportAndFileIO;import java.io.File;импортиране на java.io.FileInputStream;импортиране на java.io.FileOutputStream;импортиране на java.io.IOException;внос org.apache.poi.hssf.usermodel.HSSFWorkbook;внос org.apache.poi.ss.usermodel.Cell;внос org.apache.poi.ss.usermodel.Row;внос org.apache.poi.ss.usermodel.Sheet;внос org.apache.poi.ss.usermodel.Workbook;импортиране org.apache.poi.xssf.usermodel.XSSFWorkbook;публичен клас WriteGuru99ExcelFile {public void writeExcel (String filePath, String fileName, String sheetName, String [] dataToWrite) хвърля IOException {// Създаване на обект от клас File за отваряне на xlsx файлФайлов файл = нов файл (filePath + "\\" + fileName);// Създаване на обект от клас FileInputStream за четене на Excel файлFileInputStream inputStream = нов FileInputStream (файл);Работна книга guru99Workbook = null;// Намерете разширението на файла, като разделите името на файла в подниза и получите само име на разширениеString fileExtensionName = fileName.substring (fileName.indexOf ("."));// Проверяваме състоянието дали файлът е xlsx файлif (fileExtensionName.equals (". xlsx")) {// Ако това е xlsx файл, тогава създайте обект от класа XSSFWorkbookguru99Workbook = нов XSSFWorkbook (inputStream);}// Проверяваме дали файлът е xls файлиначе ако (fileExtensionName.equals (". xls")) {// Ако е xls файл, тогава създайте обект от класа XSSFWorkbookguru99Workbook = нов HSSFWorkbook (inputStream);}// Четене на Excel по име на листЛистов лист = guru99Workbook.getSheet (sheetName);// Вземете текущия брой редове в Excel файлint rowCount = sheet.getLastRowNum () - sheet.getFirstRowNum ();// Вземете първия ред от листаРед ред = лист.getRow (0);// Създайте нов ред и го добавете в края на листаРед newRow = лист.createRow (rowCount + 1);// Създаване на цикъл над клетката на новосъздадения редза (int j = 0; j
Excel манипулация с помощта на JXL API
JXL е и друг известен буркан за четене на Excel файл в Java и писане на файлове. В днешно време POI се използва в повечето проекти, но преди POI, JXL е само Java API за манипулиране на Excel. Това е много малък и прост API за четене на Excel в Селен.
СЪВЕТИ: Моето предложение е да не се използва JXL в който и да е нов проект, тъй като библиотеката не е в активна разработка от 2010 г. и липсата на функция в сравнение с POI API.
Изтеглете JXL:
Ако искате да работите с JXL, можете да го изтеглите от тази връзка
https://sourceforge.net/projects/jexcelapi/files/jexcelapi/2.6.12/
Можете също така да получите демонстрационен пример в този компресиран файл за JXL.
Някои от функциите:
- JXL може да чете файл на Excel в Selenium за работна книга 95, 97, 2000, XP, 2003.
- Можем да работим с английски, френски, испански, немски.
- Копиране на диаграма и вмъкване на изображение в Excel е възможно
Недостатък:
- Можем да пишем само Excel 97 и по-нови версии (писането в Excel 95 не се поддържа).
- JXL не поддържа XLSX формат на Excel файл.
- Той генерира електронна таблица във формат Excel 2000.
Резюме:
- Файлът на Excel може да се чете чрез операция Java IO. За това трябва да използваме Apache POI Jar .
- Има два вида работна книга във файл Excel, XLSX и XLS файлове.
- POI има различни интерфейси Workbook, Sheet, Row, Cell.
- Тези интерфейси са внедрени от съответните класове за манипулиране на XLS ( HSSFWorkbook, HSSFSheet, HSSFRow, HSSFCell ) и XLSX ( XSSFWorkbook, XSSFSheet, XSSFRow, XSSFCell ).
- JXL е друг API за обработка на Excel в Selenium.
- JXL не може да работи с XLSX формат на Excel.