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":
\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:
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
Grüße J