Как читать/записывать данные в Excel Selenium Использование Apache POI
⚡ Умное резюме
Файлы Excel на диске Selenium Тесты, основанные на данных, и Apache POI — это... Java Библиотека, которая читает и записывает их. В разделах ниже рассматриваются зависимости, основные классы, примеры чтения и записи, а также JXL.

Файловый ввод-вывод является важной частью любого программного процесса. Мы часто создаем файл, открываем его и что-то обновляем или удаляем на наших компьютерах. То же самое и с Selenium Автоматизация. Нам нужен процесс для манипулирования файлами с помощью Selenium.
Java предоставляет нам различные классы для манипуляций с файлами с помощью Selenium. В этом уроке мы научимся читать и писать на Excel файл с помощью Java пакет ввода-вывода и Apache POI-библиотека.
POI Apache в Selenium
POI Apache в Selenium это широко используемый API для Selenium тестирование на основе данныхЭто библиотека объектов интереса (POI), написанная на языке программирования. Java который дает пользователям API для управления Microsoft Документы, такие как .xls и .xlsx. Пользователи могут легко создавать, изменять и читать/записывать данные в файлы Excel. POI расшифровывается как «Плохая реализация обфускации».
Как работать с файлами Excel с помощью POI (зависимость Maven POM)
Ссылки на объекты интереса (POI) Selenium Проверьте свои знания, используя рабочую тетрадь, расположенную ниже.
Чтобы прочитать и записать файл Excel в JavaApache предоставляет очень известную библиотеку POI. Эта библиотека достаточно функциональна для чтения и записи файлов Excel как в формате XLS, так и в формате XLSX.
Для чтения файлов XLS библиотека POI предоставляет реализацию HSSF.
Для чтения файлов XLSX можно использовать реализацию библиотеки POI в формате XSSF. Давайте рассмотрим эти реализации подробнее.
Если вы используете Maven в своем проекте, зависимость Maven будет добавлена в pom.xml, как показано ниже.
<dependency> <groupId>org.apache.poi</groupId> <artifactId>poi</artifactId> <version>4.1.1</version> </dependency>
Примечание к версии: 4.1.1 — это исходный пример; текущие проекты заявляют poi-ooxml 5.5.1, который необходим для XLSX.
Или вы можете просто загрузить последнюю версию POI jars с сайта http://poi.apache.org/download.html и загрузите последнюю версию zip-файла
Когда вы загружаете zip-файл для этого jar-файла, вам необходимо разархивировать его и добавить все эти jar-файлы в путь к классам вашего проекта.
Классы и интерфейсы в POI
Ниже приведен список различных Java Ниже представлены интерфейсы и классы в POI для чтения файлов XLS и XLSX.
- Рабочая тетрадь: Этот интерфейс реализуют классы XSSFWorkbook и HSSFWorkbook.
- XSSFWorkbook: Представляет собой классовое представление файла XLSX.
- Рабочая тетрадь HSSF: Это представление класса файла XLS.
- Простынь: Классы XSSFSheet и HSSFSheet реализуют этот интерфейс.
- XSSFSheet: Это класс, представляющий собой лист в файле XLSX.
- HSSFSheet: Это класс, представляющий собой лист в файле XLS.
- Строка: Классы XSSFRow и HSSFRow реализуют этот интерфейс.
- XSSFRow: Это класс, представляющий строку в листе файла XLSX.
- HSSFRow: Это класс, представляющий строку в листе файла XLS.
- Моб: Классы XSSFCell и HSSFCell реализуют этот интерфейс.
- XSSFCell: Это класс, представляющий ячейку в строке файла XLSX.
- HSSFCell: Класс, представляющий ячейку в строке файла XLS.
Читай пиши Operaпроизводство
Для нашего примера мы рассмотрим ниже приведенный формат файла Excel.
Чтение данных из файла Excel
Полный пример: Здесь мы пытаемся считать данные из Excel. 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"); } }
Примечание: Мы не используем TestNG рамки здесь. Запустите класс как Java Приложение, использующее функцию чтения Excel в Selenium как показано в примере выше.
Затем консоль выводит каждую строку, ячейку за ячейкой.
Запись данных в файл Excel
Полный пример: Здесь мы пытаемся записать данные из файла Excel, добавив новую строку в файл 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); } }
Затем в рабочую книгу добавляется эта строка.
Манипулирование Excel с использованием JXL API
JXL также является еще одним известным банком для чтения файлов Excel. Java и запись файлов. В настоящее время POI используется в большинстве проектов, но до POI использовался только JXL. Java API для манипуляций с Excel. Это очень маленький и простой API для чтения Excel. Selenium.
СОВЕТЫ: Я бы посоветовал не использовать JXL в новых проектах, потому что библиотека не находится в активной разработке с 2010 года — 2.6.12 по-прежнему является её последним релизом — и в ней отсутствует необходимая функциональность по сравнению с POI API.
Скачать JXL:
Если вы хотите работать с JXL, вы можете скачать его по этой ссылке.
https://sourceforge.net/projects/jexcelapi/files/jexcelapi/2.6.12/
В этом заархивированном файле вы также найдете демонстрационный пример для JXL, например.tracНиже представлено содержимое, указанное в тексте.
Некоторые из особенностей:
- JXL может читать файл Excel в Selenium для рабочей книги 95, 97, 2000, XP, 2003.
- Мы можем работать с английским, французским, испанским, немецким языками.
- Возможно копирование диаграммы и вставка изображения в Excel.
недостаток:
- Мы можем писать только в Excel 97 и более поздних версиях (написание в Excel 95 не поддерживается).
- JXL не поддерживает формат XLSX файла Excel.
- Он генерирует электронную таблицу в формате Excel 2000.










