为 csv 表格着色

为 csv 表格着色

我有一个 CSV 文件,我想让一些条目变成彩色和粗体。例如“bezahlt”应该是绿色和粗体。“unbezahlt”应该是红色和粗体。“offen”应该是黑色和粗体。“unklar”应该是 stealblue 和粗体。

csv 文件的内容

Na,Ku,Re,Be,Da,St
 Bl,Bs,631,238.00,15.01.2022,offen
 Br,Bg,632,309.40,15.01.2022,bezahlt
 Co,Cn,633,309.40,15.01.2022,unbezahlt
 Dr,De,634,952.00,15.01.2022,unklar
\documentclass{article}
\usepackage{newtxtext,newtxmath}
\usepackage{geometry}
\geometry{
    a4paper,
    total={170mm,240mm},
    left=20mm,
    top=20mm,
}
\usepackage{csvsimple}



\begin{document}
    \section*{Be}
    
    \csvreader[tabular=|l|l|l|c|r|c|c|,
    table head=\hline & Na & Ku& Re & Be& Da & St\\\hline,
    late after line=\\\hline]%
    {Jan2022.csv}{Na=\Na,Ku=\Ku,Re=\Re,Be=\Be,Da=\Da,St=\St}%
    {\thecsvrow & \Na&\Ku&\Re&\Be&\Da&\St}%
    
    

    
\end{document}

我不知道如何添加图像来显示输出。但我希望它能清楚地显示我想要实现的目标。

感谢您的帮助


现在的照片

在此处输入图片描述

答案1

一个可能的解决方案csvsimple-l3tabularray包装:


对于短表

\documentclass{article}

\usepackage{csvsimple-l3}
\usepackage{xcolor}
\usepackage{tabularray}

\begin{filecontents*}[overwrite]{\jobname.csv}
 Na,Ku,Re,Be,Da,St
 Bl,Bs,631,238.00,15.01.2022,offen
 Br,Bg,632,309.40,15.01.2022,bezahlt
 Co,Cn,633,309.40,15.01.2022,unbezahlt
 Dr,De,634,952.00,15.01.2022,unklar
 Bl,Bs,631,238.00,15.01.2022,offen
 Br,Bg,632,309.40,15.01.2022,bezahlt
 Co,Cn,633,309.40,15.01.2022,unbezahlt
 Dr,De,634,952.00,15.01.2022,unklar
\end{filecontents*}

\begin{document}
    
\csvreader[
  tabularray = {
    colspec = {|l|l|l|c|r|c|c|},
    cell{2-Z}{Z} = {font=\bfseries},   
  },
  table head = \hline & Na & Ku& Re & Be& Da & St\\\hline,
  late after line = \\\hline
]{\jobname.csv}{Na=\Na,Ku=\Ku,Re=\Re,Be=\Be,Da=\Da,St=\St}{
  \thecsvrow & \Na & \Ku & \Re & \Be & \Da &
  \ifcsvstrcmp{\St}{offen}{\SetCell{fg=gray3}\St}{
    \ifcsvstrcmp{\St}{bezahlt}{\SetCell{fg=green3}\St}{
      \ifcsvstrcmp{\St}{unbezahlt}{\SetCell{fg=red3}\St}{
        \ifcsvstrcmp{\St}{unklar}{\SetCell{fg=azure3}\St}{\St}  
      }
    }    
  }
}%

\end{document}

在此处输入图片描述


适合长桌

\documentclass{article}
\usepackage[b6paper,margin=1.5cm]{geometry}

\usepackage{csvsimple-l3}
\usepackage{xcolor}
\usepackage{tabularray}

\begin{filecontents*}[overwrite]{\jobname.csv}
 Na,Ku,Re,Be,Da,St
 Bl,Bs,631,238.00,15.01.2022,offen
 Br,Bg,632,309.40,15.01.2022,bezahlt
 Co,Cn,633,309.40,15.01.2022,unbezahlt
 Dr,De,634,952.00,15.01.2022,unklar
 Bl,Bs,631,238.00,15.01.2022,offen
 Br,Bg,632,309.40,15.01.2022,bezahlt
 Co,Cn,633,309.40,15.01.2022,unbezahlt
 Dr,De,634,952.00,15.01.2022,unklar
 Bl,Bs,631,238.00,15.01.2022,offen
 Br,Bg,632,309.40,15.01.2022,bezahlt
 Co,Cn,633,309.40,15.01.2022,unbezahlt
 Dr,De,634,952.00,15.01.2022,unklar
 Bl,Bs,631,238.00,15.01.2022,offen
 Br,Bg,632,309.40,15.01.2022,bezahlt
 Co,Cn,633,309.40,15.01.2022,unbezahlt
 Dr,De,634,952.00,15.01.2022,unklar
 Bl,Bs,631,238.00,15.01.2022,offen
 Br,Bg,632,309.40,15.01.2022,bezahlt
 Co,Cn,633,309.40,15.01.2022,unbezahlt
 Dr,De,634,952.00,15.01.2022,unklar
 Bl,Bs,631,238.00,15.01.2022,offen
 Br,Bg,632,309.40,15.01.2022,bezahlt
 Co,Cn,633,309.40,15.01.2022,unbezahlt
 Dr,De,634,952.00,15.01.2022,unklar
 Bl,Bs,631,238.00,15.01.2022,offen
 Br,Bg,632,309.40,15.01.2022,bezahlt
 Co,Cn,633,309.40,15.01.2022,unbezahlt
 Dr,De,634,952.00,15.01.2022,unklar
 Bl,Bs,631,238.00,15.01.2022,offen
 Br,Bg,632,309.40,15.01.2022,bezahlt
 Co,Cn,633,309.40,15.01.2022,unbezahlt
 Dr,De,634,952.00,15.01.2022,unklar
 Bl,Bs,631,238.00,15.01.2022,offen
 Br,Bg,632,309.40,15.01.2022,bezahlt
 Co,Cn,633,309.40,15.01.2022,unbezahlt
 Dr,De,634,952.00,15.01.2022,unklar
\end{filecontents*}

\begin{document}

\SetTblrTemplate{head,foot}{empty}

\csvreader[
  generic collected table = longtblr,
  generic table options = {[
    %caption = {My Table Caption},
    %label = {my:label},
    label = none,
  ]{
    rowhead = 1,
    colspec = {|l|l|l|c|r|c|c|},
    cell{2-Z}{Z} = {font=\bfseries},   
  }},
  table head = \hline & Na & Ku& Re & Be& Da & St\\\hline,
  late after line = \\\hline
]{\jobname.csv}{Na=\Na,Ku=\Ku,Re=\Re,Be=\Be,Da=\Da,St=\St}{
  \thecsvrow & \Na & \Ku & \Re & \Be & \Da &
  \ifcsvstrcmp{\St}{offen}{\SetCell{fg=gray3}}{
    \ifcsvstrcmp{\St}{bezahlt}{\SetCell{fg=green3}}{
      \ifcsvstrcmp{\St}{unbezahlt}{\SetCell{fg=red3}}{
        \ifcsvstrcmp{\St}{unklar}{\SetCell{fg=azure3}}{}  
      }
    }    
  }
  \St
}%

\end{document}

在此处输入图片描述

相关内容