Bei der Dokumentation von Experimentdaten habe ich häufig das „Problem“, dass dabei ein Tabellendokument (LibreOffice, Excel, Google Docs Spreadsheet) mit mehreren Tabellen entsteht. Häufig sind für mich die Fähigkeiten der genannten Spreadsheet Anwendungen zur Auswertung der Daten nicht ausreichend, so dass ich die gesammelten Daten gerne per Python, R oder Matlab weiter bearbeiten möchte. Leider schwankt die Qualität der verfügbaren Treiber zum direkten Import der Daten, so dass es häufig praktikabler ist die Daten im CSV-Format zu exportieren, was auch in den meisten Anleitungen zu diesem Thema empfohlen wird.

Ich empfinde es jedoch als ziemlich nervig jede einzelne Tabelle in einem Dokument von Hand exportieren zu müssen, oder generell für jeden Export der Daten eine Spreadsheet Anwendung öffnen zu müssen. Zum Glück habe ich ssconvert für mich entdeckt. Die Kommandozeilenanwendung ssconvert gehört zur freien Spreadsheet Anwendung Gnumeric und ist im zugehörigen Handbuch zu Gnumeric nur recht spärlich beschrieben. Die verwiesene man-Seite ist da zum Glück etwas aufschlussreicher.

Man sollte sich nicht von den vielen Optionen für ssconvert verwirren lassen, denn die meisten Anforderungen erkennt das Programm anhand der Dateiendungen der Eingabe- und Ausgabedateien. Wenn die Dateiendungen keinen Aufschluss auf die verwendeten Formate geben, sind weitere Optionen nötig/möglich.

Beispiele für die Benutzung von ssconvert

Zum Export genügt mir meistens folgender Befehl, wobei für %n die Tabellennummer eingefügt wird. Durch die Dateiendungen .xlsx der Eingabe und .csv der Ausgabedatei wird automatisch der entsprechende Konverter verwendet.

ssconvert --export-file-per-sheet Tabellen.xlsx tabelle-%n.csv

Möchte man lieber den Tabellennamen als Bezeichnung für die Ausgabedatei verwenden, so gibt es den Modifikator %s:

ssconvert --export-file-per-sheet Tabellen.xlsx %s.csv

In meinem Bachelorprojekt zu Manual Feature Engineering with 3D Motion Capture Data habe ich ssconvert zum Ersten Mal eingesetzt. Hier kam ssconvert zum Einsatz, um die gesammelten Experimentdaten im CSV-Format zu exportieren und anschließend zur Auswertung in R weiter verarbeiten und automatisiert mit awk in die Dokumentation (Webseite) einbinden zu können. Dies konnte uns einiges an Arbeit sparen, da wir dadurch einige Werte direkt in der Spreadsheet Anwendung berechnen lassen konnten. Anschließend konnten die aktualisierten Daten per Kommandozeilenbefehl ohne Mehraufwand in der Auswertung und Dokumentation berücksichtigt werden.

Als hilfreiches Buch auch für Einsteiger mit Tipps und Tricks zur Arbeit mit Daten auf der Kommandozeile kann ich Data Science at the Command Line empfehlen.