out of the box

Aus LinuxUser 06/2002

out of the box

eXzellent

Vor einiger Zeit stellten wir in dieser Rubrik antiword – einen Filter für Word-Dokumente – vor. Ein ähnlich brauchbares Stück Software für Excel-Tabellen fehlte bislang jedoch. Diese Lücke wird nun von xlhtml geschlossen.

out of the box

Es gibt tausende Tools und Utilities für Linux. “out of the box” pickt sich die Rosinen raus und stellt pro Monat ein Progrämmchen vor, das wir für schlichtweg unentbehrlich oder aber zu Unrecht wenig beachtet halten.

Ob CD-Liste, Vereinsstatistik oder Kochrezept – das Szenario gleicht sich: Da bekommt man, nichts Böses ahnend, Mail von Bekannten, Freunden oder Kollegen mit dem Wortlaut: “Du hast doch sicher Excel, ich hab’ Dir das Teil als .xls-Datei geschickt.” Wer jetzt als Linux-User tatsächlich kein Excel hat (oder nicht umbooten möchte) und zum Betrachten einer einfachen Liste auch nicht erst ein Monsterprogramm wie StarOffice starten will, hat ein Problem. Ähnlich ärgerliche Situationen ergeben sich, wenn man von Behörden ins Netz gestellte Statistiken ansehen möchte. Auch diese setzen häufig auf den “Standard” aus Redmond.

Ist der Leidensdruck groß genug, macht man sich früher oder später auf die Suche nach einem passenden Tool – zum Beispiel auf Freshmeat, meiner Lieblingsanlaufstelle für Open-Source-Software. Dort findet sich mit dem von Charles Wyble geschriebenen xlhtml ein Tool, das genau nach dem aussieht, was ein Excel-geplagter Linux-User braucht. Das Programm konvertiert Excel-Tabellen nach HTML, so dass sie von beliebigen Web-Browsern dargestellt werden können.

Ein Ausflug nach Chicago

Xlhtml hat seine Homepage unter der Adresse http://chicago.sourceforge.net/xlhtml/. Von dort (oder von der Heft-CD) holen Sie sich das Quellarchiv, das Sie zur Installation der Software brauchen. Weitere Voraussetzungen sind – natürlich – der GNU-C-Compiler und die üblichen Verdächtigen wie make und das Paket glibc-dev.

Die eigentliche Installation bringen Sie in wenigen Schritten über die Bühne:

tar xzf xlhtml-0.5.tgz
cd xlhtml-0.5
./configure
make
su  (root-Passwort eingeben)
make install ; exit

Anstelle der letzten Zeile haben Sie auch die Möglichkeit, das in “out of the box” 05/2002 besprochene Werkzeug checkinstall[1] einzusetzen:

checkinstall ; exit

So können Sie das Programm bei Bedarf einfach mit dem Paket-Manager Ihrer Distribution entfernen.

Nach dieser Prozedur befindet sich xlhtml im Verzeichnis /usr/local/bin, das üblicherweise in der PATH-Variable enthalten ist.

Ausprobieren

Um xlhtml zu testen, brauchen Sie nun ein Excel-Dokument. Falls sich ein solches nicht auf Ihrer Festplatte befindet, bedienen Sie sich der Datei Test.xls, die im xlhtml-Archiv enthalten ist. In dieser Tabelle werden alle bisher vom Programm unterstützten Spezialitäten wie Farben, Schriftarten und -attribute verwendet. Den ersten Test starten Sie mit dem Kommando

xlhtml Test.xls > Test.html

und betrachten die entstandene HTML-Datei Test.html mit einem Browser Ihrer Präferenz. Ein zweiter Test mit einer wahllos aus dem Netz gefischten Excel-Tabelle ist in den Abbildungen 1 (Darstellung in Excel unter Windows) und 2 (Darstellung der xlhtml-Ausgabe durch Netscape) zu sehen.

Abbildung 1: Tabellendarstellung unter Feind-OS

Abbildung 1: Tabellendarstellung unter Feind-OS

Abbildung 2: Die konvertierte Tabelle in Netscape

Abbildung 2: Die konvertierte Tabelle in Netscape

Doch nicht nur grafische Web-Browser eignen sich zum Anzeigen der durch xlhtml erzeugten Tabellen. Auch konsolenbasierte Programme dieser Gattung wie w3m oder links stellen bei solchen Dokumenten ihre Fähigkeiten unter Beweis (Abbildung 3).

Abbildung 3: Mit w3m dargestellte Tabelle in der Textkonsole

Abbildung 3: Mit w3m dargestellte Tabelle in der Textkonsole

Schneidetisch und Fremdformate

Wenn Sie sich nur für einen bestimmten Ausschnitt der Tabelle interessieren und die relevanten Zeilen- und Spaltenbereiche kennen, teilen Sie dies dem Programm mit den Optionen -xr (“extract row”) und -xc (“extract column”) mit. Ferner existiert noch die Option -xp (“extract page”), die bestimmte Seiten des Dokuments selektiert. Um aus der Tabelle diesel.xls die Zeilen 2 bis 5 und daraus wiederum die Spalten 0 bis 2 zu extrahieren und das Ergebnis direkt in der Textkonsole zu betrachten, geben Sie – eine w3m-Installation vorausgesetzt – Folgendes ein:

xlhtml -xr:2-5 -xc:0-2 diesel.xls | w3m -T text/html

Hierbei nutzen Sie aus, dass xlhtml die HTML-Seite auf die Standardausgabe schreibt und der Browser w3m direkt von der in eine Datei bzw. mit | an ein Kommando umleiten.” target=”_self” class=”glossary”>Standardeingabe lesen kann. Das Pipe-Zeichen (“|“) steht dabei für eine Weiterleitung der Ausgabe an das nachfolgende Kommando. Damit w3m mit den ihm übergebenen Daten etwas anfangen kann, müssen Sie ihm mit der Option -T noch sagen, um welches Format es sich handelt – text/html steht dabei für HTML.

xlhtml kennt aber noch weitere Ausgabeformate: Die Option -xml macht aus Excel XML (“Extensible Markup Language”), -csv erstellt kommaseparierte Werte (“Comma Separated Values”), und die Option -asc sorgt für puren ASCII-Text. Die letzten beiden Formate stehen nur in Kombination mit den -x-Optionen zur Verfügung. Wollen Sie etwa den Inhalt der Excel-Tabelle cdliste.xls als reinen Text sehen, geben Sie ein:

xlhtml -asc -xp:99 cdliste.xls

Da wir das gesamte Dokument lesen wollen, muss die der Option -xp übergebene Zahl (hier 99, es könnte aber auch 999 sein) größer sein als die tatsächliche Seitenanzahl. Alle weiteren Optionen des Programms beschreibt die Manpage, die Sie mit man xlhtml aufrufen.

Midnight Commander kann alles

Wie beim Word-Filter antiword[2] liegt auch bei xlhtml die Idee nahe, es als Filter in den eingebauten Betrachter des Datei-Managers Midnight Commander (mc) zu integrieren. Dazu müssen Sie die Datei ~/.mc/bindings lediglich um die folgenden zwei Zeilen erweitern:

shell/.xls
        View=%view{ascii} xlhtml %f | w3m -T text/html -dump

Nun reicht es, zum Betrachten von Excel-Tabellen im mc die gewünschte Datei zu markieren und die Taste [F3] zu drücken.

Kraftpunkt

Der Autor von xlhtml war übrigens sehr fleißig: Im Quellarchiv befindet sich neben dem Excel-Konverter ein Programm namens ppthtml zum Umwandeln von Powerpoint-Dateien nach HTML. Man ruft es mit

ppthtml powerpoint_datei.ppt > html_datei.html

auf, sollte vom Ergebnis aber nicht zuviel erwarten: Es extrahiert derzeit lediglich Text.

Glossar

Freshmeat
Die erste Adresse für aktuelle Entwicklungen im Open-Source-Bereich. Sie ist unter http://freshmeat.net/ zu finden.
HTML
“HyperText Markup Language”, die ursprünglich am CERN entwickelte Auszeichnungssprache für Seiten des World Wide Web. Durch sogenannte Tags wird die Kennzeichnung bestimmter Textteile als Überschriften, Listen, Tabellen und ähnliches erreicht.
make
Programm zur Ablaufsteuerung beim Übersetzen von Quelltexten. Die Konfigurationsdatei von make (das Makefile) enthält dabei beispielsweise Informationen über Abhängigkeiten zwischen den einzelnen Programmmodulen.
PATH
In dieser Variablen sind durch Doppelpunkt (“colon”) getrennte Verzeichnisse aufgelistet. Diese durchsucht die Shell nach den Kommandos, die der Benutzer ohne Pfadangabe eingibt. So wird etwa top als /usr/bin/top gefunden.
Standardeingabe
Bei vielen Kommandozeilenprogrammen gibt es die Möglichkeit, den Namen der Eingabedatei wegzulassen. In diesem Fall liest das Programm von der Standardeingabe, die normalerweise mit der Tastatur verbunden ist. Wird der Name der Ausgabedatei weggelassen, geben viele Programme auf der Standardausgabe aus, also sichtbar auf’s Terminal. Diese Ausgabe lässt sich mit dem Zeichen > in eine Datei bzw. mit | an ein Kommando umleiten.
Standardausgabe
Bei vielen Kommandozeilenprogrammen gibt es die Möglichkeit, den Namen der Eingabedatei wegzulassen. In diesem Fall liest das Programm von der Standardeingabe, die normalerweise mit der Tastatur verbunden ist. Wird der Name der Ausgabedatei weggelassen, geben viele Programme auf der Standardausgabe aus, also sichtbar auf’s Terminal. Diese Ausgabe lässt sich mit dem Zeichen > in eine Datei bzw. mit | an ein Kommando umleiten.

Infos

[1] Christian Perle: “Installieren mit Rückwärtsgang”, LinuxUser 05/2002, S. 62 f., http://www.linux-user.de/ausgabe/2002/05/062-ootb/checkinstall-3.html

[2] Christian Perle: “Dagegen!”, LinuxUser 10/2001, S. 84 f.

LinuxUser 06/2002 KAUFEN
EINZELNE AUSGABE
ABONNEMENTS
TABLET & SMARTPHONE APPS
E-Mail Benachrichtigung
Benachrichtige mich zu:

Hinweis: Dieser Artikel ist älter als ein Jahr, enthaltene Informationen sind möglicherweise veraltet.

0 Kommentare
Älteste
Neuste Beste Bewertung
Inline Feedbacks
Alle Kommentare anzeigen
Nach oben