Como criar arquivos xlsx do Excel a partir de um script?

7

Estou procurando pacotes disponíveis nos repositórios principais / universais do Ubuntu, capazes de criar arquivos Excel 2007+ xlsx de um script (python ou perl)

Meus requisitos:

  • arquivos XLSX do Excel compatíveis com 100%.
  • Documentação sólida e abrangente e uma ampla variedade de exemplos / tutoriais
  • API estável
  • Escrever texto, números, fórmulas e hiperlinks
  • Várias planilhas
  • Formatação completa
  • Células mescladas
  • Gráficos
  • Autofiltros
  • Imagens PNG / JPEG da planilha
  • Comentários das células
  • Agrupar e esboçar
por Sylvain Pineau 29.04.2014 / 15:52

1 resposta

12

Eu recomendo altamente os módulos de John McNamara. Ele fez o upload de um novo módulo Python chamado XlsxWriter para criar arquivos XLSX para o PyPi que eu empacotei para o Debian e Ubuntu.

É uma porta de um módulo Perl que ele escreveu chamado Excel :: Writer :: XLSX que é uma extensão de outro módulo Perl chamado Spreadsheet :: WriteExcel .

python3-xlsxwriter ( python-xlsxwriter para python 2.x)

XlsxWriter é um módulo Python para gravar arquivos no formato de arquivo Excel 2007+ XLSX.

Ele pode ser usado para escrever texto, números e fórmulas em várias planilhas e suporta recursos como formatação, imagens, gráficos, configuração de página, autofiltros, formatação condicional e muitos outros.

XlsxWriter tem algumas vantagens sobre os módulos alternativos do Python para escrever arquivos do Excel:

  • Ele suporta mais recursos do Excel do que qualquer um dos módulos alternativos.
  • Possui alto grau de fidelidade com arquivos produzidos pelo Excel. Na maioria dos casos, os arquivos produzidos são 100% equivalentes aos arquivos produzidos pelo Excel.
  • Possui uma extensa documentação, exemplos de arquivos e testes.
  • É rápido e pode ser configurado para usar pouca memória, mesmo para arquivos de saída muito grandes.
  • Integração com Pandas (Biblioteca de análise de dados do Python).

Um exemplo simples de alguns dos recursos do módulo Python XlsxWriter :

#Copyright 2013-2014, John McNamara, [email protected]
import xlsxwriter

# Create an new Excel file and add a worksheet.
workbook = xlsxwriter.Workbook('demo.xlsx')
worksheet = workbook.add_worksheet()

# Widen the first column to make the text clearer.
worksheet.set_column('A:A', 20)

# Add a bold format to use to highlight cells.
bold = workbook.add_format({'bold': True})

# Write some simple text.
worksheet.write('A1', 'Hello')

# Text with formatting.
worksheet.write('A2', 'World', bold)

# Write some numbers, with row/column notation.
worksheet.write(2, 0, 123)
worksheet.write(3, 0, 123.456)

# Insert an image.
worksheet.insert_image('B5', 'logo.png')

workbook.close()

Visite esta página para obter uma lista completa dos exemplos de XlsxWriter.

libexcel-writer-xlsx-perl

O Excel :: Writer :: XLSX pode ser usado para criar um arquivo do Excel no formato 2007+ XLSX.

Várias planilhas podem ser adicionadas a uma pasta de trabalho e a formatação pode ser aplicada às células. Texto, números e fórmulas podem ser gravados nas células.

Excel :: Writer :: XLSX usa a mesma interface que o módulo Spreadsheet :: WriteExcel , que produz um arquivo Excel no formato XLS binário.

Excel :: Writer :: XLSX suporta todos os recursos de Spreadsheet :: WriteExcel e em alguns casos tem mais funcionalidade. Para obter mais detalhes, consulte Compatibilidade com o Spreadsheet :: WriteExcel .

A principal vantagem do formato XLSX sobre o formato XLS é que ele permite um maior número de linhas e colunas em uma planilha.

O formato de arquivo XLSX também produz arquivos muito menores que o formato de arquivo XLS.

Para escrever uma string, uma string formatada, um número e uma fórmula para a primeira planilha em uma pasta de trabalho do Excel chamada perl.xlsx :

# reverse ('(c)'), March 2001, John McNamara, [email protected]
use Excel::Writer::XLSX;

# Create a new Excel workbook
my $workbook = Excel::Writer::XLSX->new( 'perl.xlsx' );

# Add a worksheet
$worksheet = $workbook->add_worksheet();

#  Add and define a format
$format = $workbook->add_format();
$format->set_bold();
$format->set_color( 'red' );
$format->set_align( 'center' );

# Write a formatted and unformatted string, row and column notation.
$col = $row = 0;
$worksheet->write( $row, $col, 'Hi Excel!', $format );
$worksheet->write( 1, $col, 'Hi Excel!' );

# Write a number and a formula using A1 notation
$worksheet->write( 'A3', 1.2345 );
$worksheet->write( 'A4', '=SIN(PI()/4)' );

Visite esta página por um período completo lista de exemplos do Excel :: Writer :: XLSX.

    
por Sylvain Pineau 29.04.2014 / 15:52