No veo necesidad de usar Excel como intermediario. Yo intentaría lo siguiente:
1. Usar el DatabaseDesktop para crear la tabla DBF vacía
2. Leer el archivo CVS en un StringList
3. Usar una componente Table para acceder a la tabla creada
3. Ciclar sobre todas las líneas del StringList para exportar a la tabla DBF:
Código Delphi
[-]
for i := 0 to StringList.Count - 1 do
begin
...
end;
a. Cada línea del archivo será un conjunto de valores separados por comas. Usa un segundo StringList auxiliar para separar los valores en líneas:
Código Delphi
[-]
sl.CommaText := StringList[i];
b. Un ciclo anidado sobre el StringList auxiliar para copiar los valores en los campos de la tabla:
Código Delphi
[-]
Table.Append;
Copias valores a campos
for j := 0 to sl.Count - 1 do
Table.Fields[j].Value := sl[j];
Table.Post;
Claro que si los registros son muchos puede ser un poco lento usar un StringList para el archivo CSV, pero podrías leer línea a línea con los clásicos ReadLn(Archivo).
// Saludos