El problema de los csv es que excel es de lo mas idiota de manejar con eso. Como, increíblemente idiota. Dile a excel que guarde a csv, e inmediatamente le das abrir y muchas veces se pierde información o ni siquiera parte bien las columnas.
La mejor es usar un componente que escriba directamente a excel, sin pasar por OLE. Asi lo hago desde hace años con excelentes resultados (y permite que funcione incluso si no hay excel instalado, como en un hosting linux o desde un iOS). Y de hecho, esta es la recomendación OFICIAL de MS.
La 2da mejor es usando powerquery y hacer que tu app sea una fuente de datos (por http) o generando csv o similar:
https://support.office.com/en-us/art...8-b68e9e616f5a
que es mejor cuando hay que mantener los datos "en linea".