Se alguma vez quiseste exportar uma tabela de dados a partir de um script Python sabes que mexer com CSV é bastante complicado.
Para nos salvar, existe o módulo pyExcelerator, que permite exportar com imensa facilidade tabelas de dados em formato .xls, o padrão do MS Office Excel, sem necessidade do Office nem sequer de Windows OS.
Como o módulo não tem uma documentação por aí além, decidi dar uma ajuda ao pessoal e deixar aqui uns comandos básicos.
O básico do pyExcelerator:
Inicialização (comandos obrigatórios):
# importação do módulo
from pyExcelerator import *
# criação de um workbook, a base de trabalho
wb = Workbook()
# criação de uma sheet para o workbook, que está vazio
ws1 = wb.add_sheet("sheet1")
Fontes (comandos opcionais; default Arial 10px):
# criação de um objecto fonte
font1 = Font()
# indicação do tipo de letra
font1.name = "Arial"
# bold, itálico, sublinhado e cortado
font1.bold = True
font1.italic = True
font1.underline = True
font1.struck_out = True
# mudar a cor para azul
font1.colour_index = 4
# cores disponíveis: 1-Branco; 2-Vermelho; 3-Verde; 4-Azul; 5-Amarelo; 6-Magenta; 7-Ciano
Estilos (opcional):
# estilo de fonte. Este comando é necessário para alterar a formatação da fonte. Se não for preciso fazê-lo, pode ser omitido
font1_style = XFStyle()
# associação da fonte ao estilo
font1_style.font = font1
Alinhamento de objectos dentro de células (comandos opcionais. Necessário um estilo de fonte):
# alinhamento ao centro da célula
align1 = Alignment()
align1.horz = Alignment.HORZ_CENTER
align1.vert = Alignment.VERT_CENTER
# outros tipos de alinhamento: HORZ_LEFT; HORZ_RIGHT; VERT_TOP; VERT_BOTTOM
# associação do alinhamento ao estilo
font1_style.alignment = align1
Formatação de números (opcional. Necessário um estilo de fonte):
# associando a formatação ao estilo
font1_style.num_format_str = "0.00E+00"
# outros tipos de formatação na tabela abaixo, adaptada de uma já existente
# outros tipos de formatação na tabela abaixo, adaptada de uma já existente
| Tipo | Exemplo |
| general | -1278.91 |
| 0 | -1279 |
| 0.00 | -1278.91 |
| #,##0 | -1,279 |
| #,##0.00 | -1,278.91 |
| 0% | -127891% |
| 0.00% | -127890.78% |
| 0.00E+00 | -1.28E+03 |
| # ?/? | -1278 8/9 |
| # ??/?? | -1278 69/76 |
| M/D/YY | 29/06/1896 |
| D-MMM-YY | 29-Jun-96 |
| D-MMM | 29-Jun |
| MMM-YY | Jun-96 |
| h:mm AM/PM | 2:12 AM |
| h:mm:ss AM/PM | 2:12:46 AM |
| h:mm | 02:12 |
| h:mm:ss | 02:12:46 |
| M/D/YY h:mm | 29/06/1896 02:12 |
| mm:ss.0 | 12:46.1 |
Escrever os dados (obviamente obrigatório):
# escrever a palavra '"python" na célula (0,2)
ws1.write(0,2,"python")
# criar o ficheiro .xls com o nome "python". Este comando costuma ser o último
wb.save("python.xls")
E pronts, é isto. Extremamente simples e eficaz. :)