El archivo CSV de entrada tiene un número variable de columnas. Los datos se agregan a la segunda fila en las columnas 2.ª, 3.ª, 4.ª y 5.ª. El archivo SCV de entrada puede tener 3 o 4 columnas, por lo que los datos anteriores se distribuirán en un número diferente de columnas, que es una variable que cambia en el encabezado según el archivo CSV de entrada.
Es necesario definir un encabezado dinámico que coincida con los datos CSV de entrada.
He creado un ejemplo de código Latex, donde todo se adapta al archivo CSV de entrada excepto el encabezado dinámico. Mi intento generó un error que no pude solucionar.
Mi código de látex:
\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},
expand=\expanded,
},
table head=Sample&Span over 3 or 4 columns
%&&&
\expanded{\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
The file consists of \ncols{} columns.
\end{document}
Así es como debería verse la tabla de salida dependiendo del archivo SCV de entrada.
Si alguien tiene una idea de cómo resolver este problema y puede dar un ejemplo, sería de gran ayuda. Es importante que en el ejemplo dado se utilicen los paquetes csvsimple-l3 y tabularray.