Как читать / записывать данные из файла Excel: Selenium POI

Содержание:

Anonim

Файловый ввод-вывод - важная часть любого программного процесса. Мы часто создаем файл, открываем его и что-то обновляем или удаляем на наших компьютерах. То же самое и с Selenium Automation. Нам нужен процесс для управления файлами с помощью Selenium.

Java предоставляет нам разные классы для работы с файлами с помощью Selenium. В этом руководстве мы узнаем, как мы можем читать и писать в файл Excel с помощью пакета Java IO и библиотеки Apache POI.

Apache POI в Selenium

Apache POI в Селене является широко используемым API для данных селена ведомых тестирований. Это библиотека POI, написанная на Java, которая предоставляет пользователям API для управления документами Microsoft, такими как .xls и .xlsx. Пользователи могут легко создавать, изменять и читать / записывать файлы Excel. POI означает «Плохая реализация обфускации».

  • Как обрабатывать файл Excel с помощью POI (зависимость Maven POM)
  • Классы и интерфейсы в POI
  • Операция чтения / записи
  • Прочитать данные из файла Excel
  • Записать данные в файл Excel
  • Управление Excel с помощью JXL API

Экспорт в Excel

Как обрабатывать файл Excel с помощью POI (зависимость Maven POM)

Для чтения и записи файла Excel на Java Apache предоставляет очень известную библиотеку POI. Эта библиотека способна читать и записывать файлы Excel как в формате XLS, так и в формате XLSX .

Для чтения файлов XLS в библиотеке POI предоставляется реализация HSSF .

Для чтения XLSX предпочтительнее будет реализация XSSF библиотеки POI . Давайте подробно изучим эти реализации.

Если вы используете Maven в своем проекте, зависимость Maven будет

<зависимость> org.apache.poi  poi  4.1.1 

Или вы можете просто загрузить последние версии файлов POI jar с http://poi.apache.org/download.html и загрузить последний zip-файл.

Когда вы загружаете zip-файл для этого jar-файла, вам необходимо его распаковать и добавить все эти jar-файлы в путь к классам вашего проекта.

Классы и интерфейсы в POI:

Классы и интерфейсы в Apache POI

Ниже приведен список различных интерфейсов и классов Java в POI для чтения файлов XLS и XLSX.

  • Рабочая книга : классы XSSFWorkbook и HSSFWorkbook реализуют этот интерфейс.
  • XSSFWorkbook : представляет собой классовое представление файла XLSX.
  • HSSFWorkbook : представляет собой классовое представление файла XLS.
  • Лист : классы XSSFSheet и HSSFSheet реализуют этот интерфейс.
  • XSSFSheet : класс, представляющий лист в файле XLSX.
  • HSSFSheet : класс, представляющий лист в файле XLS.
  • Строка : классы XSSFRow и HSSFRow реализуют этот интерфейс.
  • XSSFRow : класс, представляющий строку на листе файла XLSX.
  • HSSFRow : класс, представляющий строку на листе файла XLS.
  • Ячейка : классы XSSFCell и HSSFCell реализуют этот интерфейс.
  • XSSFCell : класс, представляющий ячейку в строке файла XLSX.
  • HSSFCell: класс, представляющий ячейку в строке файла XLS.

Операция чтения / записи

В нашем примере мы рассмотрим приведенный ниже формат файла Excel.

Прочитать данные из файла Excel

Полный пример: здесь мы пытаемся прочитать данные из Excel в Selenium:

пакет 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;импортировать org.apache.poi.ss.usermodel.Workbook;import org.apache.poi.xssf.usermodel.XSSFWorkbook;открытый класс ReadGuru99ExcelFile {public void readExcel (String filePath, String fileName, String sheetName) выбрасывает IOException {// Создаем объект класса File для открытия файла xlsxФайл file = новый файл (filePath + "\\" + fileName);// Создаем объект класса FileInputStream для чтения файла ExcelFileInputStream inputStream = новый FileInputStream (файл);Рабочая тетрадь guru99Workbook = null;// Находим расширение файла, разбивая имя файла в подстроке и получая только имя расширенияСтрока fileExtensionName = fileName.substring (fileName.indexOf ("."));// Проверяем условие, если файл xlsxif (fileExtensionName.equals (". xlsx")) {// Если это файл xlsx, то создаем объект класса XSSFWorkbookguru99Workbook = новый XSSFWorkbook (inputStream);}// Проверяем условие, если это файл xlselse if (fileExtensionName.equals (". xls")) {// Если это xls файл, то создаем объект класса HSSFWorkbookguru99Workbook = новый HSSFWorkbook (inputStream);}// Считываем лист внутри книги по имениЛист guru99Sheet = guru99Workbook.getSheet (sheetName);// Находим количество строк в файле Excelint rowCount = guru99Sheet.getLastRowNum () - guru99Sheet.getFirstRowNum ();// Создаем цикл по всем строкам файла Excel, чтобы прочитать егоfor (int i = 0; i 

Примечание. Здесь мы не используем фреймворк Testng. Запустите класс как приложение Java, используя функцию read excel в Selenium, как показано в примере выше.

Записать данные в файл Excel

Полный пример: здесь мы пытаемся записать данные из файла Excel, добавляя новую строку в файл Excel.

пакет 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;импортировать org.apache.poi.ss.usermodel.Workbook;import org.apache.poi.xssf.usermodel.XSSFWorkbook;открытый класс WriteGuru99ExcelFile {public void writeExcel (String filePath, String fileName, String sheetName, String [] dataToWrite) выбрасывает IOException {// Создаем объект класса File для открытия файла xlsxФайл file = новый файл (filePath + "\\" + fileName);// Создаем объект класса FileInputStream для чтения файла ExcelFileInputStream inputStream = новый FileInputStream (файл);Рабочая тетрадь guru99Workbook = null;// Находим расширение файла, разбивая имя файла в подстроке и получая только имя расширенияСтрока fileExtensionName = fileName.substring (fileName.indexOf ("."));// Проверяем условие, если файл xlsxif (fileExtensionName.equals (". xlsx")) {// Если это файл xlsx, то создаем объект класса XSSFWorkbookguru99Workbook = новый XSSFWorkbook (inputStream);}// Проверяем условие, если это файл xlselse if (fileExtensionName.equals (". xls")) {// Если это xls файл, то создаем объект класса XSSFWorkbookguru99Workbook = новый HSSFWorkbook (inputStream);}// Считываем лист Excel по имени листаЛист Sheet = guru99Workbook.getSheet (sheetName);// Получить текущее количество строк в файле Excelint rowCount = sheet.getLastRowNum () - sheet.getFirstRowNum ();// Получаем первую строку из листаСтрока row = sheet.getRow (0);// Создаем новую строку и добавляем ее последней на листеСтрока newRow = sheet.createRow (rowCount + 1);// Создаем цикл над ячейкой только что созданной строкиfor (int j = 0; j 

Управление Excel с помощью JXL API

JXL - еще одна известная банка для чтения файлов Excel на Java и записи файлов. В настоящее время POI используется в большинстве проектов, но до POI JXL был только Java API для работы с Excel. Это очень маленький и простой API для чтения в формате Excel в Selenium.

СОВЕТЫ: ​​Я предлагаю не использовать 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. Для этого нам нужно использовать Apache POI Jar .
  • В файле Excel есть книги двух типов: файлы XLSX и XLS .
  • POI имеет разные интерфейсы: Рабочая книга, Лист, Строка, Ячейка.
  • Эти интерфейсы реализуются соответствующими классами обработки файлов XLS ( HSSFWorkbook, HSSFSheet, HSSFRow, HSSFCell ) и XLSX ( XSSFWorkbook, XSSFSheet, XSSFRow, XSSFCell ).
  • JXL - еще один API для работы с Excel в Selenium.
  • JXL не может работать с форматом XLSX в Excel.