Tabelle aus CSV Datei mit fester Breite

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: Tabelle aus CSV Datei mit fester Breite

von Ricky » Di 21. Nov 2017, 15:09

Zusätzlich wäre es super, wenn sich die Spaltbreiten nicht alle gleich wären, sondern nur so breit wie der Inhalt. Das was dann noch zu der Gesamtbreite fehlt, soll dann gleichmäßig aufgeteilt werden.

Bsp:
6 Spalten mit 2cm, 2cm, 2.5cm, 3cm, 3.5cm und 4cm Inhalt. Gesamtbreite soll 23cm betragen.
-> Benötigte Gesamtbreite für die 6 Spalten: 17cm.
-> Gewollte Gesamtbreite: 23 cm
-> 23cm - 17cm = 6cm
-> 6cm / 6 Spalten = 1cm auf jede Spalte zusätzlich verteilen.

von Ricky » Di 21. Nov 2017, 14:30

ich bins nochmal.
Der Code funktioniert soweit ganz gut. Idealerweise würde ich aber gerne die Anzahl der Spalten nicht fest im LaTeX-Code vorgeben, sondern diese automatisiert auslesen lassen.
Kannst du mir hierbei nochmal helfen @markusv ?

von Johannes_B » Fr 10. Nov 2017, 18:17

Ich habe dann mal das Bild in Originalgröße an den OP angehängt. Auf dem goLaTeX-Server ist genug Platz, kein Grund externe Dienste zu nutzen.

Falls es dich interessiert, goLaTeX (und viele andere TeX-verwandte Webseiten) wird durch DANTE e.V. unterstützt (siehe linke Spalte). Auch du kannst Mitglied werden, eine Schnuppermitgliedschaft für ein Jahr kostet nur 15 Euro.

von Ricky » Fr 10. Nov 2017, 12:13

Anonymous hat geschrieben:Es ist ungeschickt Bilder bitte in einer Größe einfügen, dass man anschließend einen Ultrabreit-4K-Monitor benötigt, damit die gesamte Seite auch ohne viel horizontales hin und her Scrollen gelesen werden kann. Außer natürlich man will alle von der Beantwortung abhalten, die nicht gerade entsprechende Hochleistungshardware zur Hand haben.

Also: Bitte verringert die Größe der Bilder vor dem Hochladen auf maximal 700 Pixel in der Breite!!!
Entschuldigung, du hast natürlich Recht. Da habe ich zu schnell geschossen und nicht aufgepasst. Hier nochmal das Bild komprimiert, leider kann ich meinen Beitrag nicht editieren:

Bild

@markusv:
Ich glaube das ist genau das, wonach ich gesucht habe. Schaue es mir heute Abend nochmal in Ruhe an und werde mich dann auch in tabularx mal einlesen.
Vielen vielen Dank! :-)

von markusv » Fr 10. Nov 2017, 12:00

In diesem Falle würde sich natürlich eine Lösung mit tabularx anbieten, hier mit 15cm Breite, damit nichts überlappt:
\documentclass[11pt,a4paper]{scrartcl}
\usepackage{csvsimple} %Package fuer CSV-Dateien
\usepackage{tabularx} %für X-Spalten und tabularx-Umgebung

\begin{filecontents*}{Tabelle.csv}
   Nachname,Vorname,Alter,E-Mail,Telefon
   Mustermann,Max,30,m.max@web.de,0180/123123
\end{filecontents*}

\newcommand{\perstable}[1]{%
\begin{tabularx}{15cm}{|*{#1}{X|}}
\hline
\csvreader[late after line=\\\hline,late after last line=\\\hline,
no head,column count=#1]
  {Tabelle.csv}
  {}
  {\csvlinetotablerow}
\end{tabularx}
}

\begin{document}
\perstable{3}

\bigskip
\perstable{4}

\bigskip
\perstable{5}
\end{document}

Off-Topic: Bildgröße

von Gast » Fr 10. Nov 2017, 09:07

In http://golatex.de/wie-haenge-ich-ein-bi ... 18411.html werden übrigens aus gutem Grund max. 640x480 Pixel empfohlen!

von Gast » Fr 10. Nov 2017, 09:05

Es ist ungeschickt Bilder bitte in einer Größe einfügen, dass man anschließend einen Ultrabreit-4K-Monitor benötigt, damit die gesamte Seite auch ohne viel horizontales hin und her Scrollen gelesen werden kann. Außer natürlich man will alle von der Beantwortung abhalten, die nicht gerade entsprechende Hochleistungshardware zur Hand haben.

Also: Bitte verringert die Größe der Bilder vor dem Hochladen auf maximal 700 Pixel in der Breite!!!

von Ricky » Fr 10. Nov 2017, 08:45

Hallo markusv,

vielen Dank für deine Antwort!
Das ist aber leider nicht das, wonach ich gesucht habe. Vielleicht habe ich es schlecht beschrieben, entschuldige.

Ausgangssituation ist folgende:
Auf einer Seite soll eine gewisse Breite für Informationen aus einer CSV-Tabelle zur Verfügung stehen. Wie viele Spalten auf dieser Tabellenbreite eingenommen werden ist variabel. D.h. mal kann eine CSV-Datei zur Verfügung gestellt werden, in welcher 6 Spalten hinterlegt sind und ein anderes mal vielleicht nur 3 Spalten. Die zur Verfügung gestellt Breite soll jedoch immer komplett ausgenutzt werden (So wie in dem Bild, das ich hochgeladen habe). Dabei können die Merkmale der Spalten (und damit Anzahl der verwendeten Zeichen auch variieren)

Ich möchte also nicht für einzelne Spalten eine feste Breite vorgeben, sondern für die gesamte Tabellenbreite, z.B. 12cm. Bei einer CSV-Tabelle mit 3 Spalten bekommt jede Spalte 4cm zur Verfügung und bei einer CSV-Tabelle mit 6 Spalten bekommt jede Spalte 2cm zur Verfügung (bzw. wenn einzelne Spalten aufgrund der Zeichenanzahl eine größere Breite benötigen und manche Spalten eine geringere Breite, soll es so eingeteilt werden, dass es passt).
Natürlich ist man auf die 12cm dann auf eine maximale Zeichenanzahl begrenzt.

Ich hoffe, ich habe nun verständlicher beschrieben, was ich gerne umsetzen möchte? Sollte noch etwas unklar sein schärfe ich auch gerne noch einmal nach.

Vielen Dank und schöne Grüße
Ricky

von markusv » Mi 8. Nov 2017, 15:41

csvsimple bietet viele Möglichkeiten, Tabellen indivivduell zu gestalten. Also auch gerne mal in der Doku lesen. Aus https://tex.stackexchange.com/questions ... -csvsimple habe ich mal drei Varianten zusammengestellt und auf dein Problem abgeändert:
\documentclass[11pt,a4paper]{scrartcl}
\usepackage{csvsimple} %Package fuer CSV-Dateien

\begin{filecontents*}{Tabelle.csv}
   Nachname,Vorname,Alter,E-Mail,Telefon
   Mustermann,Max,30,m.max@web.de,0180/123123
\end{filecontents*}

\begin{document}
\csvreader[tabular=|p{3cm}|p{6cm}|r|p{2.5cm}|l|,
  no head,
  table head=\hline,
  late after line=\\\hline]%
  {Tabelle.csv}{}%
{\csvcoli & \csvcolii & \csvcoliii}%

\bigskip
   \csvloop{
  file=Tabelle.csv,
  no head,column count=4,
  tabular=|p{3cm}|p{6cm}|r|p{2.5cm}|l|,
  table head=\hline,
  command=\csvlinetotablerow,
  late after line=\\\hline
}

\bigskip
\csvreader[tabular=|p{3cm}|p{6cm}|r|p{2.5cm}|l|,
  no head,column count=5,
  table head=\hline,
  late after line=\\\hline]%
  {Tabelle.csv}{}%
{\csvlinetotablerow}%
\end{document}
EDIT: Als Erweiterung könnte man noch ein Tabellenlayout global in einem neuen Befehl festlegen und die "Personentabellen" ganz einfach mittels diesem Befehl und Argument zur Anzahl der Zeilen aufrufen:
\documentclass[11pt,a4paper]{scrartcl}
\usepackage{csvsimple} %Package fuer CSV-Dateien

\begin{filecontents*}{Tabelle.csv}
   Nachname,Vorname,Alter,E-Mail,Telefon
   Mustermann,Max,30,m.max@web.de,0180/123123
\end{filecontents*}

\newcommand{\perstable}[1]{%
\csvreader[tabular=|p{3cm}|p{3cm}|r|p{2.5cm}|l|,
  no head,column count=#1,
  table head=\hline,
  late after line=\\\hline]%
  {Tabelle.csv}{}%
{\csvlinetotablerow}%
}

\begin{document}
\perstable{3}

\bigskip
\perstable{4}

\bigskip
\perstable{5}
\end{document}

Tabelle aus CSV Datei mit fester Breite

von Ricky » Mi 8. Nov 2017, 15:08

Hallo zusammen,

ich möchte gerne mit Hilfe von Informationen aus CSV Dateien in Latex Tabellen erstellen. Die Breite der Tabelle soll dabei fest sein, wobei die Spaltenanzahl variieren kann (im Vorliegenden Minimalbeispiel könnte beispielsweise noch die Information "E-Mail Adresse" hinzukommen).

D.h. die Tabellenbreite wäre dann im Fall von 3 Spalten überdimensioniert. Wie viele Spalten sich noch hinzufügen lassen hängt von dem Text der einzelnen Spalten ab. So wie in diesem Bild dargestellt:

Bild

Hat jemand eine Idee, wie ich dieses Vorhaben umsetzen kann?
\documentclass[11pt,a4paper]{scrartcl}
\usepackage{csvsimple} %Package fuer CSV-Dateien

\begin{filecontents*}{Tabelle.csv}
	Nachname,Vorname,Alter
	Mustermann,Max,30
\end{filecontents*}

\begin{document}
	\csvautotabular{Tabelle.csv}
\end{document}
Vielen Dank im Voraus!

Gruß
Ricky[/img]
Dateianhänge
rickyTabularResized.jpg
rickyTabularResized.jpg (41.61 KiB) 5052 mal betrachtet
rickyTabularOrignial.jpg
rickyTabularOrignial.jpg (63.73 KiB) 5025 mal betrachtet

Nach oben