Etiketten erstellen - Daten aus Excel-Tabellen verwenden - bestimmte Spalten auswählen

Etiketten erstellen - Daten aus Excel-Tabellen verwenden - bestimmte Spalten auswählen

Ich muss Zettel (Etiketten) erstellen. Die Daten hierfür sind in einer Excel-Tabelle verfügbar. Die Spaltennamen lauten: Matrikelnummer, Fach, Prüfungsort (Prüfungszentrum).

Derzeit erstellen wir Belege mit CSVtools. Das Etikett sieht so aus:

NAME OF EXAMINATION

Subject : xyz

Roll No. : 000000

Dazu müssen wir mehrere CSV-Datenblätter erstellen – nach Prüfungsort und nach Fach. Gibt es eine Möglichkeit, ohne mehrere CSV-Datenblätter Beschriftungen nach Prüfungsort und Fach zu erstellen?

MWE:

\documentclass[a4paper,12pt]{article}

\usepackage{csvtools}
\usepackage[left=.5cm,right=.5cm,top=.5cm,bottom=.5cm]{geometry}
\usepackage{multicol}
\usepackage{xcolor}
\usepackage{filecontents}
\begin{filecontents*}{data.csv}
RollNo,Subject,Venue
022701,Sociology,Deptt. of Physics
022702,Sociology,Deptt. of Physics
022704,Sociology,Deptt. of Physics
022705,Sociology,Deptt. of Physics
022706,Sociology,Deptt. of Physics
022707,Sociology,Deptt. of Physics
022708,Sociology,Deptt. of Physics
022709,Sociology,Deptt. of Physics
022709,Sociology,Deptt. of Physics
022710,Sociology,Deptt. of Physics
023001,Psychology,Deptt. of Physics
023002,Psychology,Deptt. of Physics
023004,Psychology,Deptt. of Physics
023005,Psychology,Deptt. of Physics
023006,Psychology,Deptt. of Physics
023007,Psychology,Deptt. of Physics
023008,Psychology,Deptt. of Physics
023009,Psychology,Deptt. of Physics
023010,Psychology,Deptt. of Physics
\end{filecontents*}

\begin{document}

\applyCSVfile{data.csv}{% here put the name of the file
%\begin{multicols}{2}
\noindent\fbox{\parbox{6.3cm}{%
{\color{white}.}\\[7pt]
\centering{\LARGE UGC NET - 2014}\\[2pt]
\raggedright
{\Large Subject : \insertSubject}\\[5pt]
{\Large Roll No. : \textbf{0\insertRollNo}}\\[12pt]
}} % This is for parbox
%\end{multicols}
}% This is for CSV file


\end{document}

Antwort1

Hier ist etwas Code, der als Ausgangspunkt dienen sollte. Dieser verwendet das Paket. Ich habe zusätzlich zu Ihren Spalten datatooleine Spalte mit einem Kurzschlüssel für hinzugefügt .center

center,RollNo,Subject,Venue
Bangalore,022701,Sociology,Deptt. of Physics
Bangalore,022702,Sociology,Deptt. of Physics
Bangalore,022704,Sociology,Deptt. of Physics
Bangalore,022705,Sociology,Deptt. of Physics

In der vierten Spalte können Sie bei Bedarf das gesamte Zentrum angeben.

\documentclass[a4paper,12pt]{article}
\usepackage[left=.5cm,right=.5cm,top=.5cm,bottom=.5cm]{geometry}
\usepackage{xcolor}
\usepackage{filecontents}
\begin{filecontents*}{data.csv}
center,RollNo,Subject,Venue
Bangalore,022701,Sociology,Deptt. of Physics
Bangalore,022702,Sociology,Deptt. of Physics
Bangalore,022704,Sociology,Deptt. of Physics
Bangalore,022705,Sociology,Deptt. of Physics
Bangalore,022706,Sociology,Deptt. of Physics
Bangalore,022707,Sociology,Deptt. of Physics
Bangalore,022708,Sociology,Deptt. of Physics
Bangalore,022709,Sociology,Deptt. of Physics
Bangalore,022709,Sociology,Deptt. of Physics
Bangalore,022710,Sociology,Deptt. of Physics
Mangalore,023001,Psychology,Deptt. of Physics
Mangalore,023002,Psychology,Deptt. of Physics
Mangalore,023004,Psychology,Deptt. of Physics
Mangalore,023005,Psychology,Deptt. of Physics
Mangalore,023006,Psychology,Deptt. of Physics
Mangalore,023007,Psychology,Deptt. of Physics
Mangalore,023008,Psychology,Deptt. of Physics
Mangalore,023009,Psychology,Deptt. of Physics
Mangalore,023010,Psychology,Deptt. of Physics
\end{filecontents*}

\usepackage{datatool}
\DTLloaddb{data}{data.csv}

\begin{document}
This is for Bangalore center

\DTLforeach*[\DTLisopenbetween{\center}{B}{C}]{data}{%
 \center=center,\roll=RollNo,\sub=Subject, \venue=Venue}{%
   \noindent\fbox{\parbox{6.3cm}{%
{\color{white}.}\\[7pt]
\centering{\LARGE UGC NET - 2014}\\[2pt]
\raggedright
{\Large Subject : \sub}\\[5pt]
{\Large Roll No. : \textbf{\roll}}\\[12pt]
}}\hfill % This is for parbox
}%

\clearpage
This is for Mangalore

\DTLforeach*[\DTLisopenbetween{\center}{M}{N}]{data}{%
 \center=center,\roll=RollNo,\sub=Subject, \venue=Venue}{%
   \noindent\fbox{\parbox{6.3cm}{%
{\color{white}.}\\[7pt]
\centering{\LARGE UGC NET - 2014}\\[2pt]
\raggedright
{\Large Subject : \sub}\\[5pt]
{\Large Roll No. : \textbf{\roll}}\\[12pt]
}}\hfill % This is for parbox
}%

\clearpage
This is for Sociology

\DTLforeach*[\DTLisopenbetween{\sub}{S}{T}]{data}{%
 \center=center,\roll=RollNo,\sub=Subject, \venue=Venue}{%
   \noindent\fbox{\parbox{6.3cm}{%
{\color{white}.}\\[7pt]
\centering{\LARGE UGC NET - 2014}\\[2pt]
\raggedright
{\Large Subject : \sub}\\[5pt]
{\Large Roll No. : \textbf{\roll}}\\[12pt]
}}\hfill % This is for parbox
}%

\clearpage
This is for  Psychology

\DTLforeach*[\DTLisopenbetween{\sub}{P}{Q}]{data}{%
 \center=center,\roll=RollNo,\sub=Subject, \venue=Venue}{%
   \noindent\fbox{\parbox{6.3cm}{%
{\color{white}.}\\[7pt]
\centering{\LARGE UGC NET - 2014}\\[2pt]
\raggedright
{\Large Subject : \sub}\\[5pt]
{\Large Roll No. : \textbf{\roll}}\\[12pt]
}}\hfill % This is for parbox
}%

\end{document}

Bildbeschreibung hier eingeben

Beachten Sie, dass die Kompilierung bei großen CSV-Dateien langsam sein kann. Dies kann bis zu einem gewissen Grad durch die Verwendung behoben werden pgfplotstable. Hier kann eine große, einzelne Datendatei für ein bestimmtes Zentrum oder Thema herausgefiltert und einzelne CSV-Dateien im Handumdrehen erstellt werden. Sobald diese erstellt sind, können Sie die Beschriftungen mithilfe Ihres csvtoolsPakets oder mithilfe von erstellen datatool. Hier ist der Beispielcode, der dasselbe data.csvwie im vorherigen Code verwendet.

\documentclass[a4paper,12pt]{article}
\usepackage[left=.5cm,right=.5cm,top=.5cm,bottom=.5cm]{geometry}
\usepackage{xcolor}

\usepackage{pgfplotstable,xstring}
\pgfplotsset{compat=1.11}

\usepackage{datatool}

\pgfplotstableread[col sep=comma]{data.csv}\data
\begin{document}
%%----------------------------------------------------------subjectwise
%% following will filter all Psychology rows and save it as Psychology.csv
\pgfplotstablesave[col sep=comma,
    row predicate/.code={%
    \pgfplotstablegetelem{#1}{Subject}\of\data%
    \IfStrEq{\pgfplotsretval}{Psychology}{%True            %% >>imp<< Psychology is case sensitive, psychology won't work
    \relax}%
    {\pgfplotstableuserowfalse}%False
  }%
]
{\data}
{Psychology.csv}
%%----------------------------------------------------------
%% from here use datatool
\DTLloaddb{Psychology}{Psychology.csv}
\DTLforeach{Psychology}{%
 \center=center,\roll=RollNo,\sub=Subject, \venue=Venue}{%
   \noindent\fbox{\parbox{6.3cm}{%
{\color{white}.}\\[7pt]
\centering{\LARGE UGC NET - 2014}\\[2pt]
\raggedright
{\Large Subject : \sub}\\[5pt]
{\Large Roll No. : \textbf{\roll}}\\[12pt]
}}\hfill % This is for parbox
}%

\clearpage
%%---------------------------------------------------------- centerwise
%% following will filter all Bangalore rows and save it as bangalore.csv
\pgfplotstablesave[col sep=comma,
    row predicate/.code={%
    \pgfplotstablegetelem{#1}{center}\of\data%
    \IfStrEq{\pgfplotsretval}{Bangalore}{%True                       %% >>imp<< Bangalore is case sensitive
    \relax}%
    {\pgfplotstableuserowfalse}%False
  }%
]
{\data}
{bangalore.csv}
%%----------------------------------------------------------
%% from here use datatool/csvtools
\DTLloaddb{bangalore}{bangalore.csv}
\DTLforeach{bangalore}{%
 \center=center,\roll=RollNo,\sub=Subject, \venue=Venue}{%
   \noindent\fbox{\parbox{6.3cm}{%
{\color{white}.}\\[7pt]
\centering{\LARGE UGC NET - 2014}\\[2pt]
\raggedright
{\Large Subject : \sub}\\[5pt]
{\Large Roll No. : \textbf{\roll}}\\[12pt]
}}\hfill % This is for parbox
}%
\end{document}

verwandte Informationen