Самый распространенный способ - создание с помощью ActiveX компонента MS Excel. Для этого должен быть установлен неурезанный MS Office на машине, выполняющей программу(видел ноуты с предустановленными word, excel - там не работало).
Вот пример(первая строка в гугле)
Вроде в delphi даже существуют(существовали?) стандартные обёртки для офисовских компонентов, но почему-то ими никто не пользуется.
Этот способ даёт практически 100% гарантию, что всё будет так как вы рассчитываете это увидеть.
*.xls закрытый бинарный формат. Скорее всего имеются компоненты для прямого редактирования. Но, судя по тому, как результаты работы Open/Libre Office "хорошо" отображаются в MS Office....Я сомневаюсь, что существует полноценная поддержка....Хотя всё возможно.
*xlsx - зазипованный xml документ. Возможно, что с ним намного лучше обстоят дела.
Так что либо ищите компоненты, либо работайте напрямую с activeX. смотрите сами.
[ссылка появится после проверки модератором]
ищи в инете уже есть такие библиотеки, я как-то скачивал