CSV Import mit CSVSimple

Tabellen und Grafiken erstellen und anordnen


obi8
Forum-Anfänger
Forum-Anfänger
Beiträge: 14
Registriert: Sa 6. Feb 2016, 22:03

CSV Import mit CSVSimple

Beitrag von obi8 »

Guten Abend,

ich habe ein Problem mit dem Paket csvsimple.
Ich versuche gerade eine .csv Datei in Latex mit dem Paket csvsimple einzubinden.
Es will bei mir einfach nicht funktionieren. Hoffe ihr könnt mir helfen. :-)

Beim ersten Versuch kommen diese Fehler:
Package csvsimple Error: Call of CSV-Sorter failed! Use '-shell-escape' option or check log file 'csvsorter.log'.. ...ption or check log file 'csvsorter.log'.}{}
Package csvsimple Error: File 'texstudio_PH2623_sorted._csv' not existent, not readable, or empty!.
Beim zweiten Versuch kommt das:
Package csvsimple Error: File 'SHOWPROCEDURESTATUS2.csv' not existent, not readable, or empty!. ...r line=\\\hline]{SHOWPROCEDURESTATUS2.csv}
There's no line here to end. ...r line=\\\hline]{SHOWPROCEDURESTATUS2.csv}
Misplaced \noalign. ...r line=\\\hline]{SHOWPROCEDURESTATUS2.csv}
Minimalbeispiel:
\documentclass{scrartcl}

\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[ngerman]{babel}
\usepackage{csvsimple}

   
\begin{document}

%Erster Versuch
%\csvreader[
%	table head=\hline \\\hline\hline,
%	sort by=transform.xml,
%	tabular=|l|l|l|l|l|l|l|l|l|,
%	head=true,
%	respect underscore=true,
%	late after line=\\\hline
%]{SHOWPROCEDURESTATUS.csv}{\csvlinetotablerow}


%Zweiter Versuch
\csvautotabular[head=true,
				table head=\hline\\\hline\hline,
				separator=semicolon, 
				respect underscore=true, 
				late after line=\\\hline]{SHOWPROCEDURESTATUS2.csv}
				
\end{document}
Ich hoffe das durch die .txt Endung hinter xml ich die Regeln nicht vestoße.
Dateianhänge
transform.xml.txt
(251 Bytes) 296-mal heruntergeladen
SHOWPROCEDURESTATUS.csv.txt
(975 Bytes) 288-mal heruntergeladen
SHOWPROCEDURESTATUS2.csv.txt
(1.23 KiB) 315-mal heruntergeladen

Gast

Beitrag von Gast »

Im zweiten Beispiel bekomme ich eine andere Fehlermeldung, nämlich die wegen fehlendem \end{tabular}. Deine Fehlermeldung deutet eher darauf hin, dass dir bei den Dateinamen ein Fehler unterlaufen ist.

Der Fehler wegen \end{tabular} wiederum liegt daran, dass late after line auch gleich late after first line und late after last line mit überschreibt. In late after last line muss aber bei autotabular normalerweise auch das \end{tabular] enthalten sein. Außerdem hast du Prozentzeichen in den Daten, also musst du auch diese irgendwie verarbeiten, beispielsweise mit respect percent=true. Das ergibt dann mindestens:
\begin{filecontents*}{SHOWPROCEDURESTATUS2.csv}
Db;Name;Type;Definer;Modified;Created;Security_type;Comment;character_set_client;collation_connection;Database Collation
DBS02;Anzahl_Datensätze;PROCEDURE;DBS02@%;2016-11-24 17:48:30;2016-11-24 17:48:30;DEFINER;;utf8;utf8_general_ci;latin1_swedish_ci
DBS02;InformationenMitarbeiter;PROCEDURE;DBS02@%;2016-11-25 10:44:03;2016-11-25 10:44:03;DEFINER;;utf8;utf8_general_ci;latin1_swedish_ci
DBS02;LogUpdates;PROCEDURE;DBS02@%;2016-11-24 20:14:32;2016-11-24 20:14:32;DEFINER;;utf8;utf8_general_ci;latin1_swedish_ci
DBS02;sichere_Durchschnitt;PROCEDURE;DBS02@%;2016-11-15 13:11:52;2016-11-15 13:11:52;DEFINER;;utf8;utf8_general_ci;latin1_swedish_ci
DBS02;spBestAuswertung;PROCEDURE;DBS02@%;2016-11-29 13:34:49;2016-11-29 13:34:49;DEFINER;;utf8;utf8_general_ci;latin1_swedish_ci
DBS02;spInsert_typ;PROCEDURE;DBS02@%;2016-11-29 12:01:47;2016-11-29 12:01:47;DEFINER;;utf8;utf8_general_ci;latin1_swedish_ci
DBS02;sptt;PROCEDURE;DBS02@%;2016-11-29 12:07:23;2016-11-29 12:07:23;DEFINER;;utf8;utf8_general_ci;latin1_swedish_ci
DBS02;Wertebereich;PROCEDURE;DBS02@%;2016-11-24 18:29:58;2016-11-24 18:29:58;DEFINER;;utf8;utf8_general_ci;latin1_swedish_ci
DBS02;ZaehlDaten;PROCEDURE;DBS02@%;2016-11-15 12:50:08;2016-11-15 12:50:08;INVOKER;;utf8;utf8_general_ci;latin1_swedish_ci
\end{filecontents*}
\documentclass{scrartcl}

\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[ngerman]{babel}
\usepackage{csvsimple}

   
\begin{document}

\csvautotabular[head=true,
            table head=\hline\\\hline\hline,
            separator=semicolon,
            respect underscore=true,
            respect percent=true,
            late after line=\\\hline,
            late after last line=\\\hline\end{tabular}
]{SHOWPROCEDURESTATUS2.csv}
           
\end{document}
Durch Erzeugung der Datei via filecontents*-Umgebung habe ich lediglich dafür gesorgt, dass die Dateinamen wirklich übereinstimmen und auch der Online-Editor eine Chance bekommt, das auszuführen.

Es sei allerdings noch darauf hingewiesen, dass der autotabular-Stil von cvssimple normalerweise mehr macht als oben angegeben. So wird beispielsweise noch ein eventuell definierter Tabellenfuß ausgegeben. Das erledigt das Beispiel nicht. Außerdem ist die Tabelle mit den gezeigten Daten für das angegebene Papierformat viel zu breit. Aber das war ja nicht die Frage.

Gast

Beitrag von Gast »

Im ersten Beispiel erhalte ich dieselbe Fehlermeldung, was daran liegt, dass bei mit mit TeX Live 2016 kein csvsorter installiert ist. Man muss das erst von github herunterladen und installieren. J Siehe dazu [d]csvsimple[/d]-Anleitung, Abschnitt 3.9 ganz am Anfang.

Wenn du sicher bist, dass du das richtig installiert hast, dann musst du kontrollieren, ob die erwähnte Datei csvsimple.log vorhanden ist und was darin steht. Falls sie nicht existiert, dann hast du eventuell beim Aufruf von pdflatex Option --shell-escape vergessen. Auch dazu steht etwas (wenn auch wenig) in Abschnitt 3.9 der Anleitung.

Nur als freundlicher Hinweis für die Zukunft: Auch wenn du zwei Probleme mit demselben Paket hast, sind es zwei Probleme und es wäre sinnvoll gewesen, sie getrennt zu stellen. Dann hättest du auch jeweils aussagekräftige, passende Titel wählen können. Dann hätte jede Frage einzeln beantwortet werden können und der Status der Frage hätte immer eindeutig gewählt werden können. Das wäre sowohl für dich als auch die Helfer als auch insbesondere für andere Hilfesuchende besser.

obi8
Forum-Anfänger
Forum-Anfänger
Beiträge: 14
Registriert: Sa 6. Feb 2016, 22:03

Beitrag von obi8 »

Danke für eure Hilfe,

Zum ersten Versuch:
Das mit dem installieren von csvsorter habe ich in der Dokumentation überlesen.
Ich hab mir das Paket von der GitHub Seite heruntergeladen aber wie installiert man es unter Linux?

Zum zweiten Versuch:
Nachdem ich
late after line
entfernt und
respect percent=true
gesetzt habe funktioniert es. Nur es werden mir keine Spaltennamen angezeigt obwohl ich
head=true
gesetzt habe. Oder muss man die separat angeben?

Danke für den Hinweis mit den 2 Problemen und getrennt erstellen.
Jetzt wo ich diese Antwort schreibe fiel es mir auf.
Es wäre besser gewesen, wenn ich es in 2 Threads getrennt hätte.
Werde ich in Zukunft beachten. :-)
Zuletzt geändert von obi8 am Do 1. Dez 2016, 16:57, insgesamt 1-mal geändert.

Gast

Beitrag von Gast »

obi8 hat geschrieben:Es wäre besser gewesen, wenn ich es in 2 Threads getrennt hätte.
Werde ich in Zukunft beachten. :-)

Neben bei noch eine weitere Fragen
Es gibt keine Fragen nebenbei. Du solltest also besser deinen Vorsatz in die Tat umsetzen.

esdd
Forum-Meister
Forum-Meister
Beiträge: 2561
Registriert: So 7. Feb 2010, 16:36

Beitrag von esdd »

Entferne noch Deine eigene Definition von table head, dann braucht es nicht mal head=true.
\begin{filecontents*}{SHOWPROCEDURESTATUS2.csv} 
 Db;Name;Type;Definer;Modified;Created;Security_type;Comment;character_set_client;collation_connection;Database Collation 
 DBS02;Anzahl_Datensätze;PROCEDURE;DBS02@%;2016-11-24 17:48:30;2016-11-24 17:48:30;DEFINER;;utf8;utf8_general_ci;latin1_swedish_ci 
 DBS02;InformationenMitarbeiter;PROCEDURE;DBS02@%;2016-11-25 10:44:03;2016-11-25 10:44:03;DEFINER;;utf8;utf8_general_ci;latin1_swedish_ci 
 DBS02;LogUpdates;PROCEDURE;DBS02@%;2016-11-24 20:14:32;2016-11-24 20:14:32;DEFINER;;utf8;utf8_general_ci;latin1_swedish_ci 
 DBS02;sichere_Durchschnitt;PROCEDURE;DBS02@%;2016-11-15 13:11:52;2016-11-15 13:11:52;DEFINER;;utf8;utf8_general_ci;latin1_swedish_ci 
 DBS02;spBestAuswertung;PROCEDURE;DBS02@%;2016-11-29 13:34:49;2016-11-29 13:34:49;DEFINER;;utf8;utf8_general_ci;latin1_swedish_ci 
 DBS02;spInsert_typ;PROCEDURE;DBS02@%;2016-11-29 12:01:47;2016-11-29 12:01:47;DEFINER;;utf8;utf8_general_ci;latin1_swedish_ci 
 DBS02;sptt;PROCEDURE;DBS02@%;2016-11-29 12:07:23;2016-11-29 12:07:23;DEFINER;;utf8;utf8_general_ci;latin1_swedish_ci 
 DBS02;Wertebereich;PROCEDURE;DBS02@%;2016-11-24 18:29:58;2016-11-24 18:29:58;DEFINER;;utf8;utf8_general_ci;latin1_swedish_ci 
 DBS02;ZaehlDaten;PROCEDURE;DBS02@%;2016-11-15 12:50:08;2016-11-15 12:50:08;INVOKER;;utf8;utf8_general_ci;latin1_swedish_ci 
\end{filecontents*} 
\documentclass{scrartcl} 

\usepackage[utf8]{inputenc} 
\usepackage[T1]{fontenc} 
\usepackage[ngerman]{babel} 
\usepackage{csvsimple} 

\begin{document} 

\csvautotabular[
             separator=semicolon, 
             respect underscore=true, 
             respect percent=true 
]{SHOWPROCEDURESTATUS2.csv} 

\end{document}

obi8
Forum-Anfänger
Forum-Anfänger
Beiträge: 14
Registriert: Sa 6. Feb 2016, 22:03

Beitrag von obi8 »

Danke dir, so funktioniert das ohne Probleme.

Antworten