Como ler um arquivo csv linha por linha e criar uma tabela?

Como ler um arquivo csv linha por linha e criar uma tabela?

Tenho um problema ao ler minhas linhas do banco de dados .csv. Separadas por vírgulas todas as chaves. Então, aqui está meu .csv:

id,term,description
1,"system","name"
2,"syst2","description system"
3,"syst3","no name"

E aqui está minha mesa onde coloquei (fiz MVE):

\documentclass{article}
%\documentclass{ICD}
\usepackage[T2A,T1]{fontenc}
%\usepackage[T2A]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{multicol}
\usepackage[russian,english]{babel}
%\usepackage[russian]{babel}
\usepackage{multirow}   %для таблиц со слиянием столбцов и строк
\usepackage{amsthm}
\usepackage{array}      %для таблиц с заданной шириной столбца
\usepackage{float}
\usepackage[table]{xcolor}
\usepackage{filecontents}
\usepackage{hyperref} 
\usepackage{datatool} %для работы с базами данных

\begin{document}
\newpage
\DTLloaddb{myDB}{terms.csv} %работа с базой данных
 \begin{DTLenvforeach}{myDB}{\id=id,\Ter=term,\desc=description}
 
 \vspace{\fill}
 \end{DTLenvforeach}

\section{Термины, определения и сокращения }
\begin{table}[!ht]
    \centering
    \begin{tabular}{|c|c|c|}
         no& Термин/сокращение & Описание, расшифровка  \\
         \hline
         \id &  \emph{\T} &  \emph{\TA} \\
         \hline
        % 2 &  \emph{\TB} &  \emph{\TC} \\
        \id&\emph{\Ter} & \emph{\desc}\\
         \hline
        % 3 & \emph{\TD} & \emph{\TE} \\
          2&\emph{\Ter} & \emph{\desc}\\
         \hline
         4 & \emph{\TF} & \emph{\TG}  \\
         \hline
         5 & \emph{\Th} & \emph{\TI}\\
         \hline
    \end{tabular}
    %\caption{Caption}
    \label{tab:my_label}
\end{table}

\end{document}


\endinput

Responder1

Depende da complexidade do seu arquivo CSV. Para arquivos csv simples como na sua pergunta, usando o pacotecsvsimple-l3seria o caminho mais simples a seguir. Veja o exemplo a seguir.

\documentclass[border=1cm]{standalone}
\usepackage{csvsimple-l3}
\begin{filecontents*}[overwrite]{sample.csv}
id,term,description
1,``system'',``name''
2,``syst2'',``description system''
3,``syst3'',``no name''
\end{filecontents*}

\begin{document}
\csvautotabular{sample.csv}
\end{document}

Ele gera:

1


Observe que alterei as cotações normais, ou seja, Here is some "text".pelas cotações compatíveis com LaTeX, ou seja,Here is some ``text''.

informação relacionada