Encabezado dinámico en \csvreader

Encabezado dinámico en \csvreader

El archivo CSV de entrada tiene un número variable de columnas, ya sea 3 o 4. Los datos deben agregarse a la segunda fila en las columnas 2.ª, 3.ª, 4.ª y 5.ª, de modo que los datos anteriores abarcarán un número diferente de columnas. según el archivo CSV de entrada.

Es necesario definir un encabezado dinámico que coincida con los datos CSV de entrada.

Tengo un ejemplo de un código Latex, que generó un error que no pude solucionar.

\documentclass{article}

\begin{filecontents*}{file3.csv}
  a,b,c
\end{filecontents*}

\begin{filecontents*}{file4.csv}
 a,b,c,d
\end{filecontents*}

\usepackage{csvsimple-l3}
\usepackage{tabularray}
\usepackage{xcolor}
\usepackage{ifthen}
\usepackage{readarray}
\readarraysepchar{,}
\usepackage{etoolbox}

\ExplSyntaxOn
\NewExpandableDocumentCommand{\GenerateHeader}{m}
 {
  \prg_replicate:nn {#1} { & }
 }
\ExplSyntaxOff  

\begin{document}

\newcommand{\InputCSV}[1]{%
\readdef{#1}\filedata%
\csvreader[%
no head,
tabularray={colspec={X[1,c,m]
*{\ncols}{X[1,c,m]} X[1,c,m]X[1,c,m]},
hlines,vlines,
width=\textwidth,
colsep=2.5pt,
rowsep=4.5pt,
row{1-2}={c,m,fg=black,bg=black!10,font=\bfseries\small},
cell{1}{1}={r=2}{c,m,font=\small\bfseries,bg=black!10},
cell{1}{2}={c=\ncols}{c,m,font=\small\bfseries,bg=black!10},
cell{1}{\ncols+2}={c=2}{c,m,font=\small\bfseries,bg=black!10},
},
table head=Sample&Span over 3 or 4 columns 
%
\GenerateHeader{\ncols}
Last& \\
]{#1}
{}{%
\ifnumequal{\ncols}{4}{%
   Name  &\csvcoli&\csvcolii&\csvcoliii&\csvcoliv&Result & Erros 
                        }{%
\ifnumequal{\ncols}{3}{%
   Name  &\csvcoli&\csvcolii&\csvcoliii&Result & Erros
                        }{}%                              
                        }
  }%
}

\InputCSV{file3.csv}

\bigskip

El archivo consta de columnas \ncols{}.

\end{documento}

Esta es la apariencia esperada de las tablas de salida.

ingrese la descripción de la imagen aquí ingrese la descripción de la imagen aquí

Cualquier consejo y ejemplo de Latex sería de gran ayuda. ¡Los paquetes csvsimple-l3 y tabularrai deben usarse en código Latex!

información relacionada