Seite 1 von 2

Große Tabelle mit \csvreader

Verfasst: Mo 29. Jul 2013, 10:53
von martinli
Hallo,

ich will ein großes Risk Assessment mit Hilfe von \csvreader erstellen, aber ganz so wie ich will funktioniert das leider nicht.

Hat jemand eine Idee was ich falsch gemacht habe?

Fehler:
! Misplaced \omit.
\multispan ->\omit
\begin{landscape}
\begin{tiny}
\begin{table}[H]
\centering
\begin{tabular}{|l|l|l|l|l|l|l|l|l|l|l|l|l|l|l|l|l|}
\hline
\multicolumn{1}{|c|}{}&
\multicolumn{7}{|c|}{\textbf{Section A}}&
\multicolumn{4}{|c|}{\textbf{Section B}}&
\multicolumn{4}{|c|}{\textbf{Section C}}&
\multicolumn{1}{|c|}{Date}\\
\hline
\multicolumn{1}{|c|}{}&
\multicolumn{7}{|c|}{\textbf{Description of Hazard}}&
\multicolumn{4}{|c|}{\textbf{Existing controls and workplace precautions in place}}&
\multicolumn{4}{|c|}{\textbf{Recommended and /or action required to further reduce}}&
\multicolumn{1}{|c|}{}
\\
\hline
\multicolumn{1}{|c|}{}&
\multicolumn{4}{|c|}{}&
\multicolumn{3}{c|}{\textbf{LxC=RR}}&\multicolumn{1}{|c|}{}
&\multicolumn{3}{c|}{\textbf{LxC=RR}}&
\multicolumn{1}{|c|}{or eliminate the risk}&\multicolumn{3}{c|}{\textbf{LxC=RR}}&\multicolumn{1}{|c|}{}
\\
\hline
\multicolumn{1}{|l|}{Nr.}&
\multicolumn{1}{|p{2.1cm}|}{Activity}&
\multicolumn{1}{p{2.1cm}|}{Hazard}&
\multicolumn{1}{p{2.1cm}|}{Consequence}&
\multicolumn{1}{p{1cm}|}{Type}&
\multicolumn{1}{l|}{L}&
\multicolumn{1}{l|}{C}&
\multicolumn{1}{l|}{RR}&
\multicolumn{1}{|p{3.5cm}|}{Text}&
\multicolumn{1}{l|}{L}&
\multicolumn{1}{l|}{C}&
\multicolumn{1}{l|}{RR}&
\multicolumn{1}{|p{3.5cm}|}{Text}&
\multicolumn{1}{l|}{L}&
\multicolumn{1}{l|}{C}&
\multicolumn{1}{l|}{RR}&
\multicolumn{1}{|p{1cm}|}{}\\
\hline \hline
\multicolumn{1}{|l|}{}&
\multicolumn{1}{|l|}{}&
\multicolumn{1}{l|}{}&
\multicolumn{1}{l|}{}&
\multicolumn{1}{l|}{}&
\multicolumn{1}{l|}{}&
\multicolumn{1}{l|}{}&
\multicolumn{1}{l|}{}&
\multicolumn{1}{|l|}{}&
\multicolumn{1}{l|}{}&
\multicolumn{1}{l|}{}&
\multicolumn{1}{l|}{}&
\multicolumn{1}{|l|}{}&
\multicolumn{1}{l|}{}&
\multicolumn{1}{l|}{}&
\multicolumn{1}{l|}{}&
\multicolumn{1}{|l|}{}\\
\hline

\csvreader[late after line=\\\hline]%
{ra-bbc.csv}{Activity=\activity,Hazard=\hazard,Consequence=\consequence,Type=\type,la=\la,ca=\ca,rra=\rra,tb=\tb,lb=\lb,cb=\cb,rrb=\rrb,tc=\tc,lc=\lc,cc=\cc,rrc=\rrc,date=\date}%
{
\multicolumn{1}{|l|}{\thecsvrow}&
\multicolumn{1}{|l|}{\activity}&
\multicolumn{1}{l|}{\hazard}&
\multicolumn{1}{l|}{\consequence}&
\multicolumn{1}{l|}{\type}&
\multicolumn{1}{l|}{\la}&
\multicolumn{1}{l|}{\ca}&
\multicolumn{1}{l|}{\rra}&
\multicolumn{1}{|l|}{\tb}&
\multicolumn{1}{l|}{\lb}&
\multicolumn{1}{l|}{\cb}&
\multicolumn{1}{l|}{\rrb}&
\multicolumn{1}{|l|}{\tc}&
\multicolumn{1}{l|}{\lc}&
\multicolumn{1}{l|}{\cc}&
\multicolumn{1}{l|}{\rrc}&
\multicolumn{1}{|l|}{\date}\\
\hline
}

\end{tabular}
\end{table}
\end{tiny}
\end{landscape}
Activity,Hazard,Consequence,Type,la,ca,rra,tb,lb,cb,rrb,tc,lc,cc,rrc,date
Activity,Hazard,Consequence,Type,la,ca,rra,tb,lb,cb,rrb,tc,lc,cc,rrc,date
Vielen Dank für eure Hilfe

Minimalbeispiel balstel ich gleich.

Martin

Verfasst: Mo 29. Jul 2013, 11:04
von martinli
Hochladen funktioniert nicht:
\documentclass[12pt,oneside,a4paper]{scrartcl}
\usepackage[ngerman, english]{babel}
\usepackage{amsmath,amssymb,amsthm,amsfonts,latexs ym}
\usepackage[latin1]{inputenc}
\usepackage{courier}
% fuer Zitate
\usepackage[round]{natbib}
\usepackage{enumerate}
\usepackage{graphicx}
\usepackage[table]{xcolor}
\usepackage{tabu}

\usepackage{lmodern}
%%%%SCHRIFTART
\usepackage[T1]{fontenc}
%\newcommand{\changefont}[3]{
%\fontfamily{#1} \fontseries{#2} \fontshape{#3} \selectfont}

%%%TABELLE DREHEN
\usepackage{rotating}

\usepackage{textcomp}  %Sonderzeichen
%Für Tabellenfarben

\usepackage{flexisym}
\usepackage{breqn}


%% CSV SIMPLE für Tabellen aus CSV
\usepackage{csvsimple}


%%% WHILE / FORE Schleifen
\usepackage{ifthen,pifont,forloop}

%% Text Hintergrundfarbe ohne Randabstand:
\setlength{\fboxsep}{0pt}
%%Zeilenabstand
\usepackage{setspace}
\onehalfspacing
%%Seitenränder
\usepackage[left=20mm,right=20mm,top=35mm,bottom=25mm,headheight=22mm,]{geometry}

%% Für lange Tabellen
\setkeys{breqn}{breakdepth={100}}

%% Abstand zwischen Tabelle und Überschrift

%\usepackage{setspace}
%\setkeys{breqn}{compact}
\usepackage{pdflscape}%Für querformatige Seiten
\usepackage{longtable,booktabs} %Für Mehrseitige Tabellen, die noch mehr können
\usepackage{booktabs} %Für Dicke Linien in Tabellen
%%%%%%<+>%%%%%%\usepackage[headsepline,plainheadsepline]{scrpage2}
%%%%%%<+>%%%%%%\automark{section}
%%%%%%<+>%%%%%%\pagestyle{scrheadings}

%%%MultiROW
\usepackage{multirow}

\usepackage{pdfpages}

\usepackage[
pdftex, colorlinks=true,
pdftitle={},
pdfsubject={},
pdfauthor={},
pdfpagemode=UseNone,pdfstartview=FitH,pdfhighlight={/N}
]{hyperref}
\usepackage[pdftex]{insdljs}

\begin{filecontents*}{ra-test.csv}
Activity,Hazard,Consequence,Type,la,ca,rra,tb,lb,cb,rrb,tc,lc,cc,rrc,date
Activity,Hazard,Consequence,Type,la,ca,rra,tb,lb,cb,rrb,tc,lc,cc,rrc,date
\end{filecontents*}

\begin{document} %###################################################################




\begin{landscape}
\begin{tiny}
\begin{table}[H]
\centering
\begin{tabular}{|l|l|l|l|l|l|l|l|l|l|l|l|l|l|l|l|l|}
\hline
\multicolumn{1}{|c|}{}&
\multicolumn{7}{|c|}{\textbf{Section A}}&
\multicolumn{4}{|c|}{\textbf{Section B}}&
\multicolumn{4}{|c|}{\textbf{Section C}}&
\multicolumn{1}{|c|}{Date}\\
\hline
\multicolumn{1}{|c|}{}&
\multicolumn{7}{|c|}{\textbf{Description of Hazard}}&
\multicolumn{4}{|c|}{\textbf{Existing controls and workplace precautions in place}}&
\multicolumn{4}{|c|}{\textbf{Recommended and /or action required to further reduce}}&
\multicolumn{1}{|c|}{}
\\
\hline
\multicolumn{1}{|c|}{}&
\multicolumn{4}{|c|}{}&
\multicolumn{3}{c|}{\textbf{LxC=RR}}&\multicolumn{1}{|c|}{}
&\multicolumn{3}{c|}{\textbf{LxC=RR}}&
\multicolumn{1}{|c|}{or eliminate the risk}&\multicolumn{3}{c|}{\textbf{LxC=RR}}&\multicolumn{1}{|c|}{}
\\
\hline
\multicolumn{1}{|l|}{Nr.}&
\multicolumn{1}{|p{2.1cm}|}{Activity}&
\multicolumn{1}{p{2.1cm}|}{Hazard}&
\multicolumn{1}{p{2.1cm}|}{Consequence}&
\multicolumn{1}{p{1cm}|}{Type}&
\multicolumn{1}{l|}{L}&
\multicolumn{1}{l|}{C}&
\multicolumn{1}{l|}{RR}&
\multicolumn{1}{|p{3.5cm}|}{Text}&
\multicolumn{1}{l|}{L}&
\multicolumn{1}{l|}{C}&
\multicolumn{1}{l|}{RR}&
\multicolumn{1}{|p{3.5cm}|}{Text}&
\multicolumn{1}{l|}{L}&
\multicolumn{1}{l|}{C}&
\multicolumn{1}{l|}{RR}&
\multicolumn{1}{|p{1cm}|}{}\\
\hline \hline
\multicolumn{1}{|l|}{}&
\multicolumn{1}{|l|}{}&
\multicolumn{1}{l|}{}&
\multicolumn{1}{l|}{}&
\multicolumn{1}{l|}{}&
\multicolumn{1}{l|}{}&
\multicolumn{1}{l|}{}&
\multicolumn{1}{l|}{}&
\multicolumn{1}{|l|}{}&
\multicolumn{1}{l|}{}&
\multicolumn{1}{l|}{}&
\multicolumn{1}{l|}{}&
\multicolumn{1}{|l|}{}&
\multicolumn{1}{l|}{}&
\multicolumn{1}{l|}{}&
\multicolumn{1}{l|}{}&
\multicolumn{1}{|l|}{}\\
\hline

\csvreader[late after line=\\\hline]%
{ra-test.csv}{Activity=\activity,Hazard=\hazard,Consequence=\consequence,Type=\type,la=\la,ca=\ca,rra=\rra,tb=\tb,lb=\lb,cb=\cb,rrb=\rrb,tc=\tc,lc=\lc,cc=\cc,rrc=\rrc,date=\date}%
{
\multicolumn{1}{|l|}{\thecsvrow}&
\multicolumn{1}{|l|}{\activity}&
\multicolumn{1}{l|}{\hazard}&
\multicolumn{1}{l|}{\consequence}&
\multicolumn{1}{l|}{\type}&
\multicolumn{1}{l|}{\la}&
\multicolumn{1}{l|}{\ca}&
\multicolumn{1}{l|}{\rra}&
\multicolumn{1}{|l|}{\tb}&
\multicolumn{1}{l|}{\lb}&
\multicolumn{1}{l|}{\cb}&
\multicolumn{1}{l|}{\rrb}&
\multicolumn{1}{|l|}{\tc}&
\multicolumn{1}{l|}{\lc}&
\multicolumn{1}{l|}{\cc}&
\multicolumn{1}{l|}{\rrc}&
\multicolumn{1}{|l|}{\date}\\
\hline
}


\end{tabular}
\end{table}
\end{tiny}
\end{landscape}

\label{lastlastpage}
\end{document}


Verfasst: Mo 29. Jul 2013, 11:08
von Johannes_B
Bitte versuch doch ein echtes Minimalbeispiel zu erstellen. Du brauchst bestimmt keine 180 Zeilen um dein Problem zu verdeutlichen?

Verfasst: Mo 29. Jul 2013, 11:21
von martinli
Hallo Johannes,

hab es gekürzt, Auf 121 Zeilen.
Ich weiß, kurz ist immer noch etwas anderes, aber ich weiß auch nicht, was genau hier falsch ist, also wollte ich lieber etwas mehr code einfügen.
Hoffe das ist OK so?

Vielen Dank schon mal

Martin
\documentclass[12pt,oneside,a4paper]{scrartcl}
\usepackage[table]{xcolor}
\usepackage{tabu}
%%%TABELLE DREHEN
\usepackage{rotating}
\usepackage{textcomp}  %Sonderzeichen
%Für Tabellenfarben
\usepackage{flexisym}
\usepackage{breqn}
%% CSV SIMPLE für Tabellen aus CSV
\usepackage{csvsimple}
%% Für lange Tabellen
\setkeys{breqn}{breakdepth={100}}
\usepackage{pdflscape}%Für querformatige Seiten
\usepackage{longtable,booktabs} %Für Mehrseitige Tabellen, die noch mehr können
\usepackage{booktabs} %Für Dicke Linien in Tabellen
%%%MultiROW
\usepackage{multirow}
\usepackage{pdfpages}

\begin{filecontents*}{ra-test.csv}
Activity,Hazard,Consequence,Type,la,ca,rra,tb,lb,cb,rrb,tc,lc,cc,rrc,date
Activity,Hazard,Consequence,Type,la,ca,rra,tb,lb,cb,rrb,tc,lc,cc,rrc,date
\end{filecontents*}

\begin{document} 

\begin{landscape}
\begin{tiny}
\begin{table}[H]
\centering
\begin{tabular}{|l|l|l|l|l|l|l|l|l|l|l|l|l|l|l|l|l|}
\hline
\multicolumn{1}{|c|}{}&
\multicolumn{7}{|c|}{\textbf{Section A}}&
\multicolumn{4}{|c|}{\textbf{Section B}}&
\multicolumn{4}{|c|}{\textbf{Section C}}&
\multicolumn{1}{|c|}{Date}\\
\hline
\multicolumn{1}{|c|}{}&
\multicolumn{7}{|c|}{\textbf{Description of Hazard}}&
\multicolumn{4}{|c|}{\textbf{Existing controls and workplace precautions in place}}&
\multicolumn{4}{|c|}{\textbf{Recommended and /or action required to further reduce}}&
\multicolumn{1}{|c|}{}
\\
\hline
\multicolumn{1}{|c|}{}&
\multicolumn{4}{|c|}{}&
\multicolumn{3}{c|}{\textbf{LxC=RR}}&\multicolumn{1}{|c|}{}
&\multicolumn{3}{c|}{\textbf{LxC=RR}}&
\multicolumn{1}{|c|}{or eliminate the risk}&\multicolumn{3}{c|}{\textbf{LxC=RR}}&\multicolumn{1}{|c|}{}
\\
\hline
\multicolumn{1}{|l|}{Nr.}&
\multicolumn{1}{|p{2.1cm}|}{Activity}&
\multicolumn{1}{p{2.1cm}|}{Hazard}&
\multicolumn{1}{p{2.1cm}|}{Consequence}&
\multicolumn{1}{p{1cm}|}{Type}&
\multicolumn{1}{l|}{L}&
\multicolumn{1}{l|}{C}&
\multicolumn{1}{l|}{RR}&
\multicolumn{1}{|p{3.5cm}|}{Text}&
\multicolumn{1}{l|}{L}&
\multicolumn{1}{l|}{C}&
\multicolumn{1}{l|}{RR}&
\multicolumn{1}{|p{3.5cm}|}{Text}&
\multicolumn{1}{l|}{L}&
\multicolumn{1}{l|}{C}&
\multicolumn{1}{l|}{RR}&
\multicolumn{1}{|p{1cm}|}{}\\
\hline \hline
\multicolumn{1}{|l|}{}&
\multicolumn{1}{|l|}{}&
\multicolumn{1}{l|}{}&
\multicolumn{1}{l|}{}&
\multicolumn{1}{l|}{}&
\multicolumn{1}{l|}{}&
\multicolumn{1}{l|}{}&
\multicolumn{1}{l|}{}&
\multicolumn{1}{|l|}{}&
\multicolumn{1}{l|}{}&
\multicolumn{1}{l|}{}&
\multicolumn{1}{l|}{}&
\multicolumn{1}{|l|}{}&
\multicolumn{1}{l|}{}&
\multicolumn{1}{l|}{}&
\multicolumn{1}{l|}{}&
\multicolumn{1}{|l|}{}\\
\hline

\csvreader[late after line=\\\hline]%
{ra-test.csv}{Activity=\activity,Hazard=\hazard,Consequence=\consequence,Type=\type,la=\la,ca=\ca,rra=\rra,tb=\tb,lb=\lb,cb=\cb,rrb=\rrb,tc=\tc,lc=\lc,cc=\cc,rrc=\rrc,date=\date}%
{
\multicolumn{1}{|l|}{\thecsvrow}&
\multicolumn{1}{|l|}{\activity}&
\multicolumn{1}{l|}{\hazard}&
\multicolumn{1}{l|}{\consequence}&
\multicolumn{1}{l|}{\type}&
\multicolumn{1}{l|}{\la}&
\multicolumn{1}{l|}{\ca}&
\multicolumn{1}{l|}{\rra}&
\multicolumn{1}{|l|}{\tb}&
\multicolumn{1}{l|}{\lb}&
\multicolumn{1}{l|}{\cb}&
\multicolumn{1}{l|}{\rrb}&
\multicolumn{1}{|l|}{\tc}&
\multicolumn{1}{l|}{\lc}&
\multicolumn{1}{l|}{\cc}&
\multicolumn{1}{l|}{\rrc}&
\multicolumn{1}{|l|}{\date}\\
\hline
}


\end{tabular}
\end{table}
\end{tiny}
\end{landscape}

\label{lastlastpage}
\end{document}


Verfasst: Mo 29. Jul 2013, 12:20
von Noch so einer
Du sollst nicht einfach etwas mehr Code angeben, sondern ein VM (mit Anleitung zur Erstellung nicht nur für Anfänger) erstellen! Bitte halte Dich künftig daran.

Wenn ich allen überflüssigen Code weglasse, dann ergibt sich, dass das Problem bei den ganzen überflüssigen \multicolumn-Anweisungen liegt. Die funktionieren nicht innerhalb von \cvsreader. Außerdem hast Du vollkommen unsinnig am Ende des Arguments noch "\\\hline" eingefügt, obwohl Du das bereits mit Option latex after line ebenfalls erledigst. Folgendes funktioniert bei mir:
\documentclass[12pt,oneside,a4paper]{scrartcl}
\usepackage{textcomp}  %Sonderzeichen
%% CSV SIMPLE für Tabellen aus CSV
\usepackage{csvsimple}
\usepackage{pdflscape}%Für querformatige Seiten
\begin{filecontents*}{ra-test.csv}
Activity,Hazard,Consequence,Type,la,ca,rra,tb,lb,cb,rrb,tc,lc,cc,rrc,date
Activity,Hazard,Consequence,Type,la,ca,rra,tb,lb,cb,rrb,tc,lc,cc,rrc,date
\end{filecontents*}

\begin{document}

\begin{landscape}
\tiny% Das ist eine Anweisung!
\begin{table}% Option [H] ist Unfug!
\centering
\begin{tabular}{|l|l|l|l|l|l|l|l|l|l|l|l|l|l|l|l|l|}
\hline
\csvreader[late after line=\\\hline]%
{ra-test.csv}{Activity=\activity,Hazard=\hazard,Consequence=\consequence,Type=\type,la=\la,ca=\ca,rra=\rra,tb=\tb,lb=\lb,cb=\cb,rrb=\rrb,tc=\tc,lc=\lc,cc=\cc,rrc=\rrc,date=\date}%
{
\thecsvrow&
\activity&
\hazard&
\consequence&
\type&
\la&
\ca&
\rra&
\tb&
\lb&
\cb&
\rrb&
\tc&
\lc&
\cc&
\rrc&
\date
}
\end{tabular}
\end{table}
\end{landscape}

\label{lastlastpage}
\end{document}
Das ganze verwendet IMO übrigens viel zu viele vertikale und horizontale Linien.

Verfasst: Mo 29. Jul 2013, 13:15
von martinli
Hallo,

Vielen Dank!
Generell schaut die Tabelle schon super so aus.
Ich hab nur das Problem, dass ich bei "\begin/End{Itemize}" einen fehler bekomme.
Ich nutze das schon in einer anderen Tabelle, Also csvreader + itemize. Da funktioniert es. Hier aber leider nicht.
"Simething's wrong--perhabs a missing \item"

Hat jemand eine Idee?

Vielen Dank

Martin

Verfasst: Mo 29. Jul 2013, 14:46
von Johannes_B
In deinem Beispiel ist doch überhaupt kein Itemize drin? Da musst du wohl ein neues Minimalbeispiel erstellen.

Falls das mit cvsreader nichts mehr zu tun hat, dann bitte in einem neuen Thema.

Verfasst: Mo 29. Jul 2013, 14:50
von martinli
Ob es etwas mit dem Csvreader zu tun hat weiß ich leider nicht.

Hier das Minimalbeispiel:
\documentclass[12pt,oneside,a4paper]{scrartcl}
\usepackage{textcomp}  %Sonderzeichen
%% CSV SIMPLE für Tabellen aus CSV
\usepackage{csvsimple}
\usepackage{pdflscape}%Für querformatige Seiten
\begin{filecontents*}{ra-test.csv}
Activity,Hazard,Consequence,Type,la,ca,rra,tb,lb,cb,rrb,tc,lc,cc,rrc,date
Activity,Hazard,\begin{itemize}
\item Test1
\item Test2
\item Test3
\end{itemize},Type,la,ca,rra,tb,lb,cb,rrb,tc,lc,cc,rrc,date
\end{filecontents*}

\begin{document}

\begin{landscape}
\tiny% Das ist eine Anweisung!
\begin{table}
\centering
\begin{tabular}{|l|l|p|l|l|l|l|l|l|l|l|l|l|l|l|l|l|}
\hline
\csvreader[late after line=\\\hline]%
{ra-test.csv}{Activity=\activity,Hazard=\hazard,Consequence=\consequence,Type=\type,la=\la,ca=\ca,rra=\rra,tb=\tb,lb=\lb,cb=\cb,rrb=\rrb,tc=\tc,lc=\lc,cc=\cc,rrc=\rrc,date=\date}%
{
\thecsvrow&
\activity&
\hazard&
\consequence&
\type&
\la&
\ca&
\rra&
\tb&
\lb&
\cb&
\rrb&
\tc&
\lc&
\cc&
\rrc&
\date
}
\end{tabular}
\end{table}
\end{landscape}

\label{lastlastpage}
\end{document} 

Verfasst: Mo 29. Jul 2013, 15:06
von Noch so einer
Ich glaube, Du hast nicht verstanden, was csv bedeutet. Dabei ist jede Zeile ein neuer Datensatz! Was Du da in die csv-Datei schreibst, ist also Unfug! Aber, selbst wenn man es in eine Zeile packt, kann csvsimple das nicht verarbeiten. In solchen Fällen ist es wohl besser, sich ein perl-Script o. ä. zu schreiben, um aus den Daten echten LaTeX-Code zu machen, den man mit \input lädt.

Darüber hinaus benötigen p-Spalten zwingend eine Breitenangabe. Du solltest Dir mal eine ausführliche LaTeX-Anleitung zulegen und die auch durcharbeiten.

Außerdem solltest Du den Status aktuell halten. Wenn Du eine Rückfrage beantwortet hast, ist der Status "Rückfrage" nicht mehr passend.

Verfasst: Mo 29. Jul 2013, 15:11
von Johannes_B
Wie mein Vorredner bereits schreibt, klappt das so nicht. csv steht für comma-separated-value. Das bedeutet, dass ein Computer die Spalten selbstständig erkennen, und so automatiesiert die Datenbank in irgend einer Art darstellen oder verarbeiten kann. LaTeX-Anweisungen haben in so einer Datenbank nichts verloren.