Не нужно делать интерфейс только потому что 'все так делают'.
Исходить нужно исключительно из задачи! Делать нужно ровно столько сколько нужно и не больше не меньше.
p.s. Когда то я работал активно с данными, конечно экселя могло бы быть достаточно но он неудобный и медленный
Обычно нужен для конвертера следующий UI (писался давно, не очень использовался и затерялся):
* Настройка источника данных (у вас это кнопка/поле - место откуда брать excel источник, плюс к примеру имя/номер листа)
Показать начальное содержимое листа при выборе, минимальную статистику (количество строк, колонок и т.п.)
* Список необходимых колонок с указанием, какие колонки чем являются
При выборе колонки источника показывать список вариантов его значений (не обязательно все, первые десятки, но бегло дает представление о значении поля)
* Фильтры (пропустить пустые строки, убрать дубликаты и прочее прочее) - не перебарщивай, очень редко задачи повторяются, все объять невозможно, можно предложить поле для ввода кода (использовать в eval), если источник база данных - можно запилить какой то минимальный конструктор sql (без ui, хотя список таблиц и название колонок в базе уже круто, плюс поиск по подстроке по данным во всех таблицах - удобная вещь когда ковыряешь чужую базу, лучше это делать в специализированных программах, помню пользовался dbforge studio community version)
* настройка назначения вывода данных (имя файла)
* настройка типа данных в файле вывода (выбор из списка захардкоженных в программу, если актуально само собой)
Еще момент - интерфейс должен быть исключительно интерфейсом к консольной программе, генерируя для нее строку/файлы настроек, чтобы можно было их использовать к примеру для автоматических регулярных запусков без запуска интерфейса (я генерирую в таких случаях батник с запуском программы с нужными ключами)