如何逐行读取 csv 文件并创建表格?

如何逐行读取 csv 文件并创建表格?

我在从 .csv 数据库读取行时遇到问题。每个键都用逗号分隔。因此,这是我的 .csv:

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

这是我放置它的表格(我将其设为 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

答案1

取决于 CSV 文件的复杂程度。对于像您问题中的简单 csv 文件,使用包csvsimple-l3是最简单的方法。请参见以下示例。

\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}

它生成:

1


请注意,我已将普通的引文(即,Here is some "text".使用 LaTeX 友好的引文)更改为,即,Here is some ``text''.

相关内容