Wie erstelle ich Excel xlsx-Dateien aus einem Skript?

7

Ich suche nach Paketen, die in Ubuntu-Haupt- / Universums-Repositorys verfügbar sind und Excel 2007+ xlsx- Dateien aus einem Skript (Python oder Perl) erstellen können.

Meine Anforderungen:

  • 100% kompatible Excel XLSX-Dateien.
  • Solide und umfassende Dokumentation und eine Vielzahl von Beispielen / Tutorials
  • Stabile API
  • Schreiben Sie Text, Zahlen, Formeln und Hyperlinks
  • Mehrere Arbeitsblätter
  • Vollständige Formatierung
  • Zusammengeführte Zellen
  • Diagramme
  • Autofilter
  • Arbeitsblatt PNG / JPEG-Bilder
  • Zellkommentare
  • Gruppe und Umrisse
Sylvain Pineau
quelle
4
Hinweis zum Schließen von Wählern: Lassen Sie uns dies nicht als zu weit gefasst schließen. Das OP hat nicht nur eine sehr spezifische Liste von Anforderungen angegeben, sondern diese auch selbst beantwortet . Dies ist nicht nur eine blinde Bitte um Hilfe von jemandem, der zu faul ist, um es zu versuchen, sondern genau das Gegenteil, eine nützliche Ressource, die von einem Benutzer bereitgestellt wird, der sie vermutlich auf die harte Tour lernen musste.
Terdon
3
Ich verwende seit mehr als einem Jahrzehnt XLS- und XLSX-Module, um alle Arten von Berichten in Perl und Python zu erstellen, und ich wollte mein Wissen teilen, da es nicht so viele Pakete gibt, die solche Funktionen bieten. Ich bin der Paketbetreuer von XlsxWriter in Debian / Ubuntu. Ich habe es einfach verpackt, weil ich einige Funktionen verpasst habe, die nur von diesem Modul bereitgestellt werden. Probieren Sie es aus.
Sylvain Pineau

Antworten:

13

Ich kann die Module von John McNamara nur empfehlen. Er hat ein neues Python-Modul namens XlsxWriter hochgeladen, um XLSX-Dateien auf PyPi zu erstellen , die ich für Debian und Ubuntu gepackt habe.

Es ist eine Portierung eines von ihm geschriebenen Perl-Moduls namens Excel :: Writer :: XLSX , eine Erweiterung eines anderen Perl-Moduls namens Spreadsheet :: WriteExcel .

python3-xlsxwriter ( python-xlsxwriter für python 2.x)

XlsxWriter ist ein Python-Modul zum Schreiben von Dateien im Excel 2007+ XLSX-Dateiformat.

Es kann zum Schreiben von Text, Zahlen und Formeln in mehrere Arbeitsblätter verwendet werden und unterstützt Funktionen wie Formatierung, Bilder, Diagramme, Seiteneinrichtung, Autofilter, bedingte Formatierung und viele andere.

XlsxWriter bietet einige Vorteile gegenüber den alternativen Python-Modulen zum Schreiben von Excel-Dateien:

  • Es unterstützt mehr Excel-Funktionen als jedes der alternativen Module.
  • Es hat ein hohes Maß an Wiedergabetreue mit von Excel erstellten Dateien. In den meisten Fällen entsprechen die erstellten Dateien zu 100% den von Excel erstellten Dateien.
  • Es verfügt über eine umfangreiche Dokumentation, Beispieldateien und Tests.
  • Es ist schnell und kann so konfiguriert werden, dass selbst für sehr große Ausgabedateien sehr wenig Speicher benötigt wird.
  • Integration mit Pandas (Python Data Analysis Library).

Ein einfaches Beispiel für einige Funktionen des XlsxWriter Python-Moduls:

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

Geben Sie hier die Bildbeschreibung ein

Auf dieser Seite finden Sie eine vollständige Liste der XlsxWriter-Beispiele.

libexcel-writer-xlsx-perl

Mit dem Excel :: Writer :: XLSX- Modul kann eine Excel-Datei im XLSX-Format 2007+ erstellt werden.

Einer Arbeitsmappe können mehrere Arbeitsblätter hinzugefügt und die Formatierung auf Zellen angewendet werden. Text, Zahlen und Formeln können in die Zellen geschrieben werden.

Excel :: Writer :: XLSX verwendet dieselbe Schnittstelle wie das Modul Spreadsheet :: WriteExcel , das eine Excel-Datei im binären XLS-Format erstellt.

Excel :: Writer :: XLSX unterstützt alle Funktionen von Spreadsheet :: WriteExcel und verfügt in einigen Fällen über mehr Funktionen. Weitere Informationen finden Sie unter Kompatibilität mit Spreadsheet :: WriteExcel .

Der Hauptvorteil des XLSX-Formats gegenüber dem XLS-Format besteht darin, dass eine größere Anzahl von Zeilen und Spalten in einem Arbeitsblatt zulässig ist.

Das XLSX-Dateiformat erzeugt auch viel kleinere Dateien als das XLS-Dateiformat.

So schreiben Sie eine Zeichenfolge, eine formatierte Zeichenfolge, eine Zahl und eine Formel in das erste Arbeitsblatt in einer Excel-Arbeitsmappe mit dem Namen 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)' );

Auf dieser Seite finden Sie eine vollständige Liste der Beispiele für Excel :: Writer :: XLSX.

Sylvain Pineau
quelle