По опыту - работа через COM с Excel дает весьма ощутимые потери во времени ДАЖЕ сейчас. Лет 5+ назад это вообще был ад. =)
Скажем так обработка csv в 5000+ записей с 20 столбцами ручками занимает в районе секунды (а то и меньше), при работе через COM (даже с учетом оптимизаций (!) (везде, где можно индексы исключены и т. п.) - несколько минут).
Более-того .xls/.xlsx требует установленного приложения. Обработка через COM к тому-же негативно сказывается в универсальности и кроссплатформенности приложения. Если есть возможность использовать промжуточные файлы - ок. =)
Более того! Экспорт в csv из Excel и последующим разбором может быть (а как правило так оно и есть ДАЖЕ на данный момент) - быстрее существенно.
https://drive.google.com/open?id=1qVCUve0ldnKETqtALMNxjjtrPHV56hMu - file.xls
https://drive.google.com/file/d/1C3BKHsnqklS9UrnPKgYs4tcHAdXdZVnF/view?usp=sharing - вот рабочая программа на Pascal без Exsel
https://drive.google.com/file/d/1GZSD5GD50vBi0y87vTxgpTflEthyJQzk/view?usp=sharing - вот пример использования Exsel.Application
Как это всё объединить в один алгоритм)?