Як читати / записувати дані з файлу Excel: POI селену

Зміст:

Anonim

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

Java пропонує нам різні класи для роботи з файлами за допомогою Selenium. У цьому посібнику ми дізнаємось, як ми можемо читати та писати у файлі Excel за допомогою пакету Java IO та бібліотеки POI Apache.

POI Apache в селені

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 бібліотеки. Ця бібліотека достатньо здатна читати та писати як формат XLS, так і XLSX у форматі Excel.

Для читання файлів XLS бібліотека POI забезпечує реалізацію HSSF .

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

Якщо ви використовуєте Maven у своєму проекті, залежність від Maven буде

<залежність> org.apache.poi  poi  4.1.1 

Або ви можете просто завантажити останню версію POI-банок з http://poi.apache.org/download.html та завантажити останній zip-файл

Коли ви завантажуєте zip-файл для цієї банки, вам потрібно розпакувати його та додати всі ці баночки до шляху до класу вашого проекту.

Класи та інтерфейси в 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.
  • Cell : Класи XSSFCell та HSSFCell реалізують цей інтерфейс.
  • XSSFCell : це клас, що представляє клітинку в рядку файлу XLSX.
  • HSSFCell: це клас, що представляє клітинку в рядку файлу XLS.

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

Для нашого прикладу ми розглянемо поданий нижче формат файлу Excel

Зчитування даних із файлу Excel

Повний приклад: Тут ми намагаємося прочитати дані з Excel у селені:

пакет excelExportAndFileIO;імпорт 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 для читання файлу ExcelFileInputStream inputStream = новий FileInputStream (файл);Робоча книга guru99Workbook = null;// Знайдіть розширення файлу, розділивши ім'я файлу в підрядок і отримавши лише ім'я розширенняРядок fileExtensionName = fileName.substring (fileName.indexOf ("."));// Перевірка стану, якщо файл є файлом xlsxif (fileExtensionName.equals (". xlsx")) {// Якщо це файл xlsx, тоді створіть об'єкт класу XSSFWorkbookguru99Workbook = новий XSSFWorkbook (inputStream);}// Перевіряємо стан, якщо файлом є файл xlsще якщо (fileExtensionName.equals (". xls")) {// Якщо це файл xls, тоді створіть об'єкт класу HSSFWorkbookguru99Workbook = новий HSSFWorkbook (inputStream);}// Прочитати аркуш усередині книги за його назвоюАркуш guru99Sheet = guru99Workbook.getSheet (аркушName);// Знайти кількість рядків у файлі Excelint rowCount = guru99Sheet.getLastRowNum () - guru99Sheet.getFirstRowNum ();// Створімо цикл над усіма рядками файлу Excel, щоб прочитати йогоfor (int i = 0; i 

Примітка: Тут ми не використовуємо фреймворк Testng. Запустіть клас як Java-програму, використовуючи функцію read excel у Selenium, як показано у наведеному вище прикладі.

Запишіть дані у файл Excel

Повний приклад: Тут ми намагаємося записати дані з файлу Excel, додавши новий рядок у файл Excel

пакет excelExportAndFileIO;імпорт 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 для читання файлу ExcelFileInputStream inputStream = новий FileInputStream (файл);Робоча книга guru99Workbook = null;// Знайдіть розширення файлу, розділивши ім'я файлу в підрядок і отримавши лише ім'я розширенняРядок fileExtensionName = fileName.substring (fileName.indexOf ("."));// Перевірка стану, якщо файл є файлом xlsxif (fileExtensionName.equals (". xlsx")) {// Якщо це файл xlsx, тоді створіть об'єкт класу XSSFWorkbookguru99Workbook = новий XSSFWorkbook (inputStream);}// Перевіряємо стан, якщо файлом є файл xlsще якщо (fileExtensionName.equals (". xls")) {// Якщо це файл xls, тоді створіть об'єкт класу XSSFWorkbookguru99Workbook = новий HSSFWorkbook (inputStream);}// Читання аркуша Excel за назвою аркушаАркуш аркуша = guru99Workbook.getSheet (аркушName);// Отримати поточну кількість рядків у файлі Excelint rowCount = sheet.getLastRowNum () - sheet.getFirstRowNum ();// Дістати перший рядок з аркушаРядок рядка = аркуш.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 у селенії для книг 95, 97, 2000, XP, 2003.
  • Ми можемо працювати з англійською, французькою, іспанською, німецькою мовами.
  • Можна скопіювати діаграму та вставити зображення в Excel

Недолік:

  • Ми можемо писати Excel 97 і пізніші версії (писати в Excel 95 не підтримується).
  • JXL не підтримує формат XLSX файлу Excel.
  • Він генерує електронну таблицю у форматі Excel 2000.

Короткий зміст:

  • Файл Excel можна прочитати за допомогою операції Java IO. Для цього нам потрібно використовувати Jar Apache POI .
  • У файлі 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.