CSVSimple-Tabelle mit "Auto-Multirow" & Filter & Alphabetischer Sortierung

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:

Markdown is OFF

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: CSVSimple-Tabelle mit "Auto-Multirow" & Filter & Alphabetischer Sortierung

CSVSimple-Tabelle mit "Auto-Multirow" & Filter & Alphabetischer Sortierung

von Jona » Di 13. Okt 2020, 22:25

Hallo Zusammen,

ich hoffe, bei euch Hilfe für folgende Fragestellung zu bekommen:

Ich würde gerne mittels des CSV-Simple-Packages Tabellen automatisch erstellen lassen, dabei soll eine bestimmte Formatierung & Filterung vorgenommen werden. Als Datenspalten habe ich für ein Minimalbeispiel Name & Nummer gewählt. Umgesetzt habe ich schon eine Filterung nach dem Ersten Buchstaben des Namens. Der zweite Schritt wäre eine, sofern dies irgendwie umsetzbar ist, bei gleichem Namen und unterschiedlicher Nummer eine "Multirow" mit der entsprechenden Größe zu erstellen. (Dies ist für mich nun der wichtigste Schritt). Weiterhin wäre es schön, aber nicht essentiell, wenn sich die Einträge automatisch sortieren würden (aber da hab ich eine Anleitung für). Schließlich wäre es auch noch schön, wenn eine Box, die aufgrund des Filters keinen Inhalt hat, nicht als "Box-Leiche" erscheint. Auch dort weiß ich nicht wie ich rangehen soll.

Dabei habe ich folgendes Minimalbeispiel erstellt, ich hoffe ich habe es genug "entschlackt":

Code: Alles auswählen

\documentclass[paper=a6, fontsize=6pt, headings=small, oneside, automark]{scrreprt}
  \usepackage[left=0.5cm,right=1cm,top=1.cm,bottom=0.5cm]{geometry} 
\usepackage[ngerman]{babel}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc} 
\usepackage{multicol}
\usepackage{multirow}
\usepackage[most,many]{tcolorbox}
\usepackage{csvsimple}
\usepackage{xltabular}
\usepackage{xstring}
\newcommand{\NameFilter}[2]{\begin{tcolorbox}[breakable, enhanced, left=0.0mm,right=0.0mm,top=0.0mm, bottom=0mm, boxsep=0.5mm, 
		title=\setlength{\LTpre}{-0.0cm}
		\begin{longtable}{@{}p{4cm}p{1.8cm}@{}}
			Name & Nummer 
		\end{longtable}] % Überschrift		]
		
		\setlength{\LTpre}{-0.0cm}		
		\csvreader[
		separator=semicolon,
		filter test={\StrLeft{\Name}{1}[\firstchar]%
						\IfStrEq{\firstchar}{#2}},
		longtable={@{}p{4cm}p{1.8cm}@{}},
		]
		{#1}%Quelle
		{1=\Name,2=\Nummer}
		{\Name & \Nummer} 
		
	
\end{tcolorbox}
}


\begin{filecontents*}{test.csv}
	name;nummer
	Adam;1245
	Adam;2345
	Adam;5678
	Mueller;2567
	Adam;3456
	Adalbert;5555
	Meier;1111
\end{filecontents*}
\begin{document}
\NameFilter{test.csv}{A}
\NameFilter{test.csv}{C}
\NameFilter{test.csv}{M}
\end{document}

Aussehen soll die Ausgabe dann inetwa so:

Bildschirmfoto von 2020-10-13 21-58-19.png
Bildschirmfoto von 2020-10-13 21-58-19.png (21.85 KiB) 250 mal betrachtet

Sollte das besser mit einem anderen Paket als csvsimple, bsp. mit datatool umzusetzen sein, wäre ich auch für den Hinweis sehr dankbar.

Ich freue mich schon auf eure Hilfe :D
Grüße J

Dateianhänge
document.tex
(1.14 KiB) 12-mal heruntergeladen

Nach oben