Datatool - Mehrere Datenbasen in eine Tabelle laden

Antwort erstellen


Diese Frage dient dazu, das automatisierte Versenden von Formularen durch Spam-Bots zu verhindern.
Smilies
:D :) :( :o :shock: :? 8) :lol: :-x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen:

BBCode ist eingeschaltet
[img] ist eingeschaltet
[flash] ist ausgeschaltet
[url] ist eingeschaltet
Smilies sind eingeschaltet

Die letzten Beiträge des Themas

Ich habe die Datenschutzerklärung gelesen und bin damit einverstanden.

   

Wenn du eine Datei oder mehrere Dateien anhängen möchtest, gib die Details unten ein.

Ansicht erweitern Die letzten Beiträge des Themas: Datatool - Mehrere Datenbasen in eine Tabelle laden

von ionas » Mo 9. Nov 2015, 17:02

Vielen Dank! :-)

Funktioniert wunderbar!
Ich werde noch versuchen das ganze mit Variablen zu füllen und mich ggf. noch mal melden, wenn ich hier auf Probleme stoßen sollte ;-)

von esdd » Fr 30. Okt 2015, 15:12

Wenn die CSV-Dateien alle in einer Tabelle ausgegeben werden, dann kannst Du sie gleich in eine Datenbank einlesen:
\DTLnewdb{daten}
\DTLnewdbonloadfalse
\DTLloaddb[noheader]{daten}{daten1.csv}
\DTLloaddb[noheader]{daten}{daten2.csv}
Die Ausgabe kannst Du dann mit
\DTLdisplaydb{daten}
automatisch vornehmen lassen. In der Dokumentation (User guide) zu datatool findest Du noch einige Befehle, die umdefiniert werden können, um die Formatierung der Tabelle zu ändern.

Bei komplizierteren Tabellen empfiehlt sich dagegen die Nutzung von \DTLforeach.

Beispiel:
\documentclass{article}
\begin{filecontents*}{daten1.csv}
1;2;3
\end{filecontents*}
\begin{filecontents*}{daten2.csv}
a;b;c
\end{filecontents*}

\usepackage{datatool}
\DTLsetseparator{;}

\DTLnewdb{daten}
\DTLnewdbonloadfalse
\DTLloaddb[noheader]{daten}{daten1.csv}
\DTLloaddb[noheader]{daten}{daten2.csv}

\begin{document}

% Beispiel für automatisierte Ausgabe
\DTLsetheader{daten}{Column1}{I}
\DTLsetheader{daten}{Column2}{II}
\DTLsetheader{daten}{Column3}{III oder was auch immer}
\renewcommand\dtlheaderformat[1]{#1}
\DTLdisplaydb{daten}
%
\hfill
%
% Beispiel für Nutzung von \DTLforeach
\begin{tabular}{l l l} 
 Spalte 1 & Spalte 2 & Spalte 3 
\tabularnewline 
\DTLforeach{daten}{\sI=Column1,\sII=Column2,\sIII=Column3}{%
  \sI&\sII&\sIII%
  \DTLiflastrow{}{\tabularnewline}%
}
\end{tabular} 
\end{document}
Gruß
Elke

Datatool - Mehrere Datenbasen in eine Tabelle laden

von ionas » Fr 30. Okt 2015, 13:52

Hallo!

Ich habe mehrere CSV-Dateien, zu verarbeiten, die nur eine Zeile enthalten.
Die würde ich gerne zu einer Tabelle in Latex verwandeln.
So in etwa:
\DTLloaddb[noheader]{dbi}
\DTLloaddb[noheader]{dbii}
\begin{table}
\begin{tabular}{l l l}
Spalte1 & Spalte2 & Spalte3
\tabularnewline
\DTLdisplaydb{dbi}
\tabularnewline
\DTLdisplaydb{dbii}
\end{tabular}
\end{table}
Wenn ich das so mache schreibt er den kompletten Inhalt der Datenbasen in die erste Spalte ... Außerdem schreibt er über jede Spalte Column1, Column2 etc.

Ist das möglich?

Ich habe noch nicht so ganz verstanden, wie Datatool arbeitet.
Kann ich mehrere Datenbasen gleichzeitig laden und verarbeiten?
Das wäre ja die Voraussetzung für die Lösung meines Problems.[/code]

Nach oben