There are indeed some problems with the filters from CSV and any form XLS or even openOffice.
Like the:
Record separator: ,
Line terminator: \n or ;
String definition: "
or the like.
If I get it correctly you want to do it on the command line within some scripts. This is exactly the same problem I have right now: from DATA in csv format, present it to the customer in XLS format.
I have found this post: https://forum.openoffice.org/en/forum/viewtopic.php?f=5&t=39844
But I am not totally satisfied. They might be an option.
Indeed if you have some sort of openOffice installed you can try to play with some info from:
http://ask.libreoffice.org/en/question/2641/convert-to-command-line-parameter/
On my shell I typed:
soffice --help
And part of the output is:
--convert-to output_file_extension[:output_filter_name] [-outdir ouput_dir] files
Batch convert files.
If -outdir is not specified then current working dir is used as output_dir.
Eg. -convert-to pdf *.doc
-convert-to pdf:writer_pdf_Export -outdir /home/user *.doc