Сравните фактические данные (xls) с ожидаемыми данными (xlsx) в Java - PullRequest
0 голосов
/ 02 июня 2018

У меня есть сценарий для запуска утверждений на основе фактических данных, представленных в файле XLS, относительно ожидаемых данных, предоставленных в файле XLSX, на основе столбца идентификатора в Java.Может ли кто-нибудь дать какой-либо совет или предложение по этому вопросу, пожалуйста?

Фактические данные

Поле (Имя) Поле (Идентификатор) Объект (Имя) ParentEntity (Имя)

Время выполнения Article.DeliveryTime Элемент Нет

Ожидаемые данные

Поле (Имя) Поле (Идентификатор) Объект (Имя) ParentEntity (Имя)

Время выполнения Item.DeliveryTime Item ParentQualifier

Количество строк и столбцов может изменяться в зависимости от предоставленных данных, но поле (идентификатор) будет указано в обоих файлах.

1 Ответ

0 голосов
/ 02 июня 2018

Я предлагаю преобразовать файлы Excel в более структурированный формат, такой как * .csv.Вы можете сделать это с помощью Excel, просто сохранив его в * .csv.Существует много библиотек синтаксического анализатора CSV.Если по какой-либо причине это невозможно (не владелец данных, управление, ...), вы можете использовать Apache POI для анализа файлов * .xls / * .xlsx и затем выполнить тестирование.Как показано здесь Link1 или здесь Link2 .Затем вы можете просто запустить утверждения с помощью JUnit.

Однако есть две потенциальные проблемы:

  • Изменение столбцов: вам нужно проанализировать Excel без указания точных имен столбцов.Затем сравнивайте только столбцы с одинаковыми именами.

  • Данные не помещаются в памяти: ищите идентификаторы и загружайте только совпадающие строки.

...