web-dev-qa-db-fra.com

Comment créer des fichiers Excel xlsx à partir d'un script?

Je recherche des paquets disponibles dans les référentiels principaux/d'univers Ubuntu capables de créer Excel 2007+ xlsx fichiers à partir d'un script (python ou Perl)

Mes exigences:

  • Fichiers Excel XLSX 100% compatibles.
  • Une documentation solide et complète et une grande variété d’exemples/tutoriels
  • API stable
  • Écrire du texte, des nombres, des formules et des hyperliens
  • Plusieurs feuilles de calcul
  • Formatage complet
  • Cellules fusionnées
  • Graphiques
  • Filtres automatiques
  • Fiche de travail images PNG/JPEG
  • Commentaires de la cellule
  • Groupe et contours
7
Sylvain Pineau

Je recommande fortement les modules de John McNamara. Il a téléchargé un nouveau module Python appelé XlsxWriter permettant de créer des fichiers XLSX sur PyPi que j'ai emballé pour Debian et Ubuntu.

C'est un port d'un module Perl qu'il a écrit appelé Excel :: Writer :: XLSX , qui est une extension d'un autre module Perl appelé Spreadsheet :: WriteExcel .

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

XlsxWriter est un module Python permettant d'écrire des fichiers au format de fichier Excel 2007+ XLSX.

Il peut être utilisé pour écrire du texte, des nombres et des formules dans plusieurs feuilles de calcul. Il prend en charge des fonctionnalités telles que le formatage, les images, les graphiques, la mise en page, les filtres automatiques, le formatage conditionnel, etc.

XlsxWriter présente certains avantages par rapport aux modules alternatifs Python pour l'écriture de fichiers Excel:

  • Il prend en charge davantage de fonctionnalités Excel que n’importe lequel des modules alternatifs.
  • Il est très fidèle aux fichiers produits par Excel. Dans la plupart des cas, les fichiers produits équivalent à 100% aux fichiers produits par Excel.
  • Il possède une documentation complète, des exemples de fichiers et des tests.
  • Il est rapide et peut être configuré pour utiliser très peu de mémoire, même pour des fichiers de sortie très volumineux.
  • Intégration avec Pandas (bibliothèque d’analyses de données Python).

Un exemple simple de certaines des fonctionnalités du module XlsxWriter Python:

#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()

enter image description here

Visitez cette page pour obtenir une liste complète des exemples de XlsxWriter.

libexcel-writer-xlsx-Perl

Le module Excel :: Writer :: XLSX peut être utilisé pour créer un fichier Excel au format 2007+ XLSX.

Plusieurs feuilles de calcul peuvent être ajoutées à un classeur et la mise en forme peut être appliquée aux cellules. Le texte, les nombres et les formules peuvent être écrits dans les cellules.

Excel :: Writer :: XLSX utilise la même interface que le module Spreadsheet :: WriteExcel qui produit un fichier Excel au format binaire XLS.

Excel :: Writer :: XLSX prend en charge toutes les fonctionnalités de Spreadsheet :: WriteExcel et, dans certains cas, offre davantage de fonctionnalités. Pour plus de détails, voir Compatibility with Spreadsheet :: WriteExcel .

Le principal avantage du format XLSX par rapport au format XLS est qu’il permet un plus grand nombre de lignes et de colonnes dans une feuille de calcul.

Le format de fichier XLSX produit également des fichiers beaucoup plus petits que le format de fichier XLS.

Pour écrire une chaîne, une chaîne mise en forme, un nombre et une formule dans la première feuille de calcul d'un classeur Excel appelé 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)' );

Visitez cette page pour obtenir la liste complète des exemples Excel :: Writer :: XLSX.

13
Sylvain Pineau