spendenquittungen/csvsimple/csvsimple-example.tex
2024-03-19 12:46:28 +01:00

111 lines
3.9 KiB
TeX

%% The LaTeX package csvsimple - version 2.5.0 (2023/10/16)
%% csvsimple-example.tex: an example for csvsimple
%%
%% -------------------------------------------------------------------------------------------
%% Copyright (c) 2008-2023 by Prof. Dr. Dr. Thomas F. Sturm <thomas dot sturm at unibw dot de>
%% -------------------------------------------------------------------------------------------
%%
%% This work may be distributed and/or modified under the
%% conditions of the LaTeX Project Public License, either version 1.3
%% of this license or (at your option) any later version.
%% The latest version of this license is in
%% http://www.latex-project.org/lppl.txt
%% and version 1.3 or later is part of all distributions of LaTeX
%% version 2005/12/01 or later.
%%
%% This work has the LPPL maintenance status `author-maintained'.
%%
%% This work consists of all files listed in README.md
%%
\documentclass{article}
\usepackage{ifthen,array,booktabs}
\IfFileExists{csvsimple-doc.cfg}{\input{csvsimple-doc.cfg}}{}% ignore this line
\providecommand\csvpkgprefix{} % ignore this line
\usepackage{\csvpkgprefix csvsimple-l3}% \usepackage{csvsimple-l3}
\begin{document}
%----------------------------------------------------------
\section{Automatic table generation (for testing)}
{\small
\csvautotabular{csvsimple-example.csv}}
%----------------------------------------------------------
\section{My first CSV table}
\csvreader[tabular=|l|l|,
table head=\hline\multicolumn{2}{|c|}{\bfseries My telephone book}\\\hline
\bfseries Name & \bfseries Number\\\hline\hline,
late after line=\\\hline]%
{csvsimple-example.csv}{last name=\surname,first name=\givenname,telephone=\telephone}{%
\givenname\ \surname & \telephone
}
%----------------------------------------------------------
\section{Remembering the names}
\csvnames{my names}{last name=\surname,first name=\givenname,address=\address,zip=\zip,telephone=\telephone,year of birth=\birthyear}
\csvreader[my names, late after line=\\, late after last line=]%
{csvsimple-example.csv}{}{%
\givenname\ was born in \birthyear\ and lives in \address.
}
%----------------------------------------------------------
\section{Filter fun}
\csvreader[my names, filter equal={\address}{Shrimpsbury}, tabbing,
table head=\bfseries Shrimpsbury friends: \=\hspace*{3cm}\=\+\kill,
before first line=\<\bfseries Shrimpsbury friends:\>]%
{csvsimple-example.csv}{}{%
\surname, \givenname \> \telephone
}
%----------------------------------------------------------
\section{More filter fun}
\csvreader[my names, filter ifthen=\birthyear<1980, centered tabular=rllr,
table head=\multicolumn{4}{c}{\bfseries People born before 1980}\\\toprule
\# & Name & Postal address & input line no.\\\midrule,
late after line=\\, late after last line=\\\bottomrule]%
{csvsimple-example.csv}{}{%
\thecsvrow & \givenname\ \surname & \zip\ \address & \thecsvinputline
}
%----------------------------------------------------------
\section{Again and again}
\csvstyle{my table}{my names,
centered tabular=|r|l|l|l|,
table head=\hline\multicolumn{4}{|c|}{\bfseries #1}\\\hline
\# & Name & Telephone & Postal address\\\hline\hline,
late after line=\\, late after last line=\\\hline}
\csvreader[my table=Predefined table]{csvsimple-example.csv}{}{%
\thecsvrow & \givenname\ \surname & \telephone & \zip\ \address
}
\csvreader[my table=Filtering for Smith, filter equal={\surname}{Smith}]%
{csvsimple-example.csv}{}{%
\thecsvrow & \givenname\ \surname & \telephone & \zip\ \address
}
\csvstyle{all and everything}{my table=#1, file={csvsimple-example.csv},
command=\thecsvrow & \givenname\ \surname & \telephone & \zip\ \address}
\csvloop{all and everything=Loop instead of reader}
\csvloop{all and everything=With Shrimpsbury filter, filter equal={\address}{Shrimpsbury}}
\csvloop{all and everything=A little modification, late after line=\\\hline}
\end{document}