Here is a solution using csv2odf that can automate the formatting in Excel:
Create a spreadsheet template in Excel with these specifications:
Insert column titles with the same number of columns as the csv. (If you want to use titles from the csv file, add the -H option to the command below.)
Add one sample row of data on the second row. Use dummy numbers where numbers will go and dummy text where text will go. Format the text/numbers however you want, format numbers with currency where needed.
Save the template as xlsx (xls will not work).
Run this command:
csv2odf yourdata.csv yourtemplate.xlsx output.xlsx
Your data will be data will be formatted in the output using formatting from the template. You can use the same template each time to automate the conversion.
Note the program needs Python to run.