入力 CSV ファイルには可変数の列があります。データは 2 行目の 2 列目、3 列目、4 列目、5 列目に追加されます。入力 SCV ファイルには 3 列または 4 列ある場合があるため、上記のデータは異なる数の列に分散されます。これは、入力 CSV ファイルに応じてヘッダーで変化する変数です。
入力 CSV データに一致する動的ヘッダーを定義する必要があります。
動的ヘッダーを除くすべてのものが入力 CSV ファイルに適合する Latex コードの例を作成しました。私の試みでは、修正できないエラーが発生しました。
私の Latex コード:
\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}
入力 SCV ファイルに応じて、出力テーブルは次のようになります。
この問題を解決する方法を知っていて、例を挙げていただける方がいらっしゃいましたら、大変助かります。 示されている例では、csvsimple-l3 パッケージと tabularray パッケージが使用されていることが重要です。