我确信这是显而易见的,但我却找不到解决方案......
给定一个以 CSV 格式存储的数据集:
ID, col1, col2, col3
KEY-1, foo bar, baz
KEY-2, alice, bob, chuck
我想定义一个\getCol3{KEY-2}
返回 的宏chuck
。我被看似内部关键结构的东西绊倒了(而且我刚开始使用datatool
)。
\DTLgetvalue{\thevalue}{data}{\therow}{\thecol}
是我认为正确的方向,但我无法为\therow
和构建有效值\thevalue
。
答案1
你需要使用\DTLgetvalueforkey
\begin{filecontents*}{demo.csv}
ID, col1, col2, col3
KEY-1, foo, bar, baz
KEY-2, alice, bob, chuck
\end{filecontents*}
\documentclass{article}
\usepackage{datatool}
\DTLloaddb{data}{demo.csv}
\newcommand*{\thevalue}{}
\newcommand*{\getCol}[2]{%
\DTLgetvalueforkey{\thevalue}{col#1}{data}{ID}{#2}%
}
\getCol{3}{KEY-2}
\show\thevalue
在这里,我们ID
使用参考键找到适当的行,使用参数找到该行#2
。