Schlagwort-Archive: Tabelle

Excel – jede Zeile als eigene Seite ausdrucken

Selten kommt es vor, dass man Daten aus Excel ausdrucken möchte. Möchte man nur die Tabelle ausdrucken, muss lediglich die Seite korrekt eingerichtet werden. Anders sieht es aus, wenn man aus irgendeinem Grund jede Zeile der Tabelle auf einem eigenen Blatt ausdrucken möchte. Excel bietet dafür keine Funktion. Der eleganteste Weg wäre natürlich, ein kleines Skript in Visual Basic zu schreiben, dass kann aber nicht jeder – ich sowieso nicht.
Ein recht einfacher Weg führt über Word. Dort können wir die Funktion Seriendruck verwenden. Der Serienbrief ist normalerweise dafür gedacht, einen Standardbrief an viele Empfänger zu versenden, also nur die Adressdaten auszutauschen. Diese Daten werden normalerweise aus einer Datenbank oder Tabelle importiert und im Dokument angeordnet. Die Funktion kann aber auch dazu verwendet werden, beliebige Daten auszudrucken. Dazu gehen wir folgendermaßen vor:
Wir öffnen ein leeres Dokument in Word und starten den Assistenten für Seriendruck. Diesen finden wir unter Extras, in Word 2003 dort unter „Briefe und Sendungen“. Dort wählen wir „Serienbrieferstellung“. Anschließend öffnet sich der Aufgabenbereich, dort wählen wir Briefe und klicken auf „Weiter“. Wir verwenden das aktuelle Dokument und klicken auf „Weiter“. Auf der folgenden Seite wählen wir „Vorhandene Liste verwenden“ und suchen nach unser Excel-Tabelle.
Jetzt sagen wir zu allem „Ja“ und „Weiter“, bis sich das Dialogfeld und das Auswahlfeld für die Daten schließt. Anschließend können wir Daten einfügen, was wir auch machen, dazu wählen wir aus dem Aufgabenbereich die Option „Weitere Elemente“. Es öffnet sich ein Dialogfeld, wo wir die Spaltenköpfe unserer Tabelle lesen können. Hier klicken wir bei den Spalten, die wir eingefügt haben wollen auf „Einfügen“, diese erscheinen im Dokumentenfenster, sie sind grau unterlegt, da es sich um Datenfelder handelt. Anschließend klicken wir auf „Schließen“.
Jetzt wollen wir das Ganze mal anständig formatieren. Der Text, den wir jenseits der grauen Felder einfügen, wird auf jeder Seite des Dokumentes angezeigt. Diesen Text können wir natürlich auch formatieren. Mit Return oder Leerzeichen solltest du außerdem dafür sorgen, dass nicht alle Datenfelder zusammenkleben, achte dabei darauf, dass die Klammern zu den Datenfeldern gehören und nicht abgetrennt werden sollen. Im Aufgabenbereich kannst du zwischen Vorschau und Dokumentbearbeitungsansicht hin und her wechseln, bis du mit der Ansicht zufrieden bist.
Ich empfehle vor dem Ausdruck vieler Seiten ein testweise drüberschauen, da sich immer Fehler einschleichen können. Ein guter und einfacher Trick ist, das ganze Dokument zuerst als PDF auszudrucken. Dazu musst du natürlich ein Programm zur Erstellung von PDF-Dateien installiert haben, dass sich über den Druckerdialog der Textverarbeitung ansprechen lässt. Viel Erfolg.

Daten aus einem PDF in eine Excel-Tabelle übertragen

Leider kommt es recht häufig vor, dass Daten in einem PDF geliefert werden. Es ist leider kaum möglich, diese Daten einfach in eine Tabelle zu übertragen, um sauber mit ihnen arbeiten zu können. PDF ist eigentlich ein Format für den Druck und enthält deshalb kaum Strukturinformationen.

Ein recht einfacher Weg ist, die Daten in ein CSV-Format zu übertragen. Das klappt beispielsweise recht gut, wenn nach jedem Datum ein Zeilenumbruch vorhanden ist und jeder Datenabschnitt durch zwei Zeilenumbrüche gekennzeichnet ist. Zum Beispiel

Name: Mustermann
Vorname: Max
Telefon: 0221 000000

Name: Mustermann
Vorname: Erika
Telefon: 02106 00000

Um herauszufinden, ob das bei eurem Dokument der Fall ist, speichert ihr das PDF-Dokument über euer Leseprogramm im reinen Textformat txt. Der oben beschriebene Weg klappt auch, wenn statt einem Zeilenumbruch immer doppelte Leerzeichen oder etwas in der Art vorhanden ist.

In jeder Textverarbeitung kann man gezielt nach Absätzen oder ähnlichen Textformatierungen suchen. Über die Suchen-und-Ersetzen-Funktion kann man diese Absätze gezielt suchen und durch ein Semikolon ersetzen lassen.

Wichtig ist dabei, eventuell vorhandene Semikola vor dieser Aktion zu entfernen, damit diese nicht als Markierung einer Tabellenzelle gewertet werden. Sind die Semikola wichtig, müssen sie vorher maskiert werden.

Zunächst sollten wir nach doppelten Absätzen suchen und diese durch doppelte Semikola ersetzen. Dadurch vermeiden wir fehlerhafte Ersetzungen. Haben wir alle doppelten Zeilenumbrüche entfernt, suchen wir nach einfachen Zeilenumbrüchen und ersetzen diese jeweils durch ein Semikolon.

Das Resultat sollte so aussehen:

Name: Mustermann;Vorname: Max;Telefon: 0221 000000;;Name:Mustermann;Vorname: Erika;Telefon: 02106 00000

Ich empfehle hier das reine Textformat und kein RTF- oder sonstige Dateiformate zu verwenden, weil es da Probleme mit der Zeichencodierung oder sonstigen Sonderzeichen geben kann. Wir schließen also das Textdokument und ändern das Dateiformat von .txt. in .csv.

Wir könnten an dieser Stelle schon hingegen und die überflüssigen Inhalte aus den Zellen entfernen, um sie als Spaltennamen zu verwenden. Das kann aber auch in der Tabellenkalkulation erledigt werden. Das geschieht ebenfalls durch die Suchen-und-Ersetzen-Funktion, diesmal suchen wir zum Beispiel nach der exakten Zeichenkette „Vorname: “. Um Nacharbeiten zu vermeiden, solltet ihr darauf achten, in einem Schritt mit dem überflüssigen begriff auch die Leer- und Satzzeichen zu entfernen. Ansonsten kann es zu Problemen kommen, wenn ihr zum Beispiel eine Spalte nach Postleitzahlen oder Anfangsbuchstaben sortieren wollt. Achtet darauf, dass auch leere Werte in die Tabelle übernommen werden, ansonsten rutschen euch sämtliche Werte durcheinander und die Tabelle ist praktisch unbrauchbar.

Da die meisten PDF-Dateien nicht sauber strukturiert sind, werden hier einige Nacharbeiten nötig sein, dennoch hoffe ich, dass ihr durch die oben beschriebenen Schritte ein wenig Zeit spart. Viel Erfolg.

Wie baue ich ein tabellenfreies Webseiten-Layout

Die Layouttabelle war vor der Entwicklung der Layoutsprache CSS die einzige brauchbare Möglichkeit, komplexe Layouts zu entwickeln. Seitdem hat sich viel getan: Die Unterstützung für CSS ist so weit etabliert, dass Tabellenlayouts langsam aussterben (sollten). Stattdessen setzt ausgerechnet der Computerverlag Heise konsequent auf Tabellen.

Zunächst einmal muss man verstehen, wie in CSS positioniert und formatiert wird. Alle Elemente – bis auf den body – werden in Div-Containern eingefasst <div>Element</div>. Alle Elemente, die in Div-Containern stehen, lassen sich über externe Stylesheets exakt positionieren.

Die Positionierung erfolgt über die Attribute von position: left, right, top und bottom.Die Höhe und Breite können unabhängig von position mit width und height definiert werden. Das heißt natürlich, dass man nur zwei Attribute von position definieren kann, also entweder left und top oder left und bottom und so weiter. Die Dimension wird über width und height bestimmt.

Alle großen Elemente wie Spalten sollten absolut positioniert werden, sprich:

{position: absolute; left:0; top:0; width: 1000px; height: 200px}

Es gibt die Eigenschaft float, die aber der Internet Explorer nicht unterstützt.

Das könnte unsere Kopfzeile werden, in dieser Kopfzeile können sich Elemente wie Bilder befinden. Im westlichen Kulturkreis liest man von links nach rechts und guckt zuerst nach oben links. Alle großen Container sollten daher von oben links absolut definiert werden. Möchte man etwa ein Objekt unten rechts positionieren, riskiert man, dass das Objekt bei kleinen Bildschirmen außerhalb des Sichtbereiches liegt.

Ein wichtiger Hinweis: Der Screenreader von Blinden greift auf den Quelltext zu und weiß nicht, wie Elemente auf der Seite selbst definiert wurden. Das heißt: Die Elemente der Website müssen im Quellcode genau in der Reihenfolge aufgeführt werden, in der sie auch auf der Seite präsentiert werden. Das heißt in der Regel: von oben links nach unten rechts, wobei die Fußzeile das letzte Element im Quelltext ist. Anders macht es etwa Golem, so dass ein Screenreader hier zuerst die Stellenanzeigen liest, die aber auf dem Bildschirm NACH der Artikelliste angezeigt wird.

Hier meine Seite als Beispiel und hier deren CSS-Code.