Para converter automaticamente arquivos CSV para XLS / XLSX, você também pode usar ssconvert (que vem com o Gnumeric) ou unoconv (que usa o LibreOffice).
Exemplo SSConvert
$ echo -e 'surname,name,age\nCarlo,Smith,23\nJohn,Doe,46\nJane,Doe,69\nSarah,Meyer,23\n' \
> example.csv
$ unix2dos example.csv
$ ssconvert example.csv example.xlsx
$ ssconvert example.csv example.xls
Em que a primeira chamada ssconvert
cria um arquivo do MS Excel 2007/2010 e a segunda, uma antiga do Excel 2007.
Você pode verificar os arquivos via file
:
$ file example.csv
example.csv: ASCII text, with CRLF line terminators
$ file example.xls
example.xls: Composite Document File V2 Document, Little Endian, Os: Windows, Version 4.10,
Code page: 1252, Create Time/Date: Tue Sep 30 20:23:18 2014
$ file example.xlsx
example.xlsx: Microsoft Excel 2007+
Você pode listar todos os formatos de arquivo de saída suportados por:
$ ssconvert --list-exporters
ID | Description
[..]
Gnumeric_Excel:xlsx2 | ISO/IEC 29500:2008 & ECMA 376 2nd edition (2008);
[MS Excel™ 2010]
Gnumeric_Excel:xlsx | ECMA 376 1st edition (2006); [MS Excel™ 2007]
Gnumeric_Excel:excel_dsf | MS Excel™ 97/2000/XP & 5.0/95
Gnumeric_Excel:excel_biff7 | MS Excel™ 5.0/95
Gnumeric_Excel:excel_biff8 | MS Excel™ 97/2000/XP
[..]
Exemplo Unoconv
$ unoconv --format xls example.csv
que cria example.xls, que é um arquivo do Excel 97/2000 / XP.
Verifique via arquivo:
$ file example.xls
example.xls: Composite Document File V2 Document, Little Endian, Os: Windows, Version 1.0,
Code page: -535, Revision Number: 0
Você pode listar todos os formatos de arquivo suportados por meio de:
$ unoconv --show
[..]
The following list of spreadsheet formats are currently available:
csv - Text CSV [.csv]
dbf - dBASE [.dbf]
[..]
ooxml - Microsoft Excel 2003 XML [.xml]
[..]
xls - Microsoft Excel 97/2000/XP [.xls]
xls5 - Microsoft Excel 5.0 [.xls]
xls95 - Microsoft Excel 95 [.xls]
[..]