直接引用电子表格/csv 的宏

直接引用电子表格/csv 的宏

我真正想要的是从 CSV 中获取一行,格式化它,然后将其放入我的文本中。

举个例子,我有一个包含城市数据的电子表格,例如“蒙特利尔,1000,维多利亚,香蕉”是第 5 行。

我希望能够调用第 5 行并自动将其格式化为:

蒙特利尔人口:1000。市长名叫维多利亚,主要出口产品是香蕉。

这可能吗?该怎么做呢?

奖励:如果我可以这样去做,即直接呼叫蒙特利尔而不是 5 号线,那将会更有用,但我不确定这是否可行。

答案1

这是一个使用选项datatool

在此处输入图片描述

\documentclass{article}

\begin{filecontents*}[overwrite]{mydata.csv}
Vancouver, 2000, Ivan, Avocados
Edmonton, 3000, Scarlet, Mangos
Saskatoon, 4000, Hilbert, Strawberries
Halifax, 12, Dilbert, Kiwis
Montreal, 1000, Victoria, Bananas
Toronto, 5000, Edward, Blueberries
\end{filecontents*}

\usepackage{datatool}

% Load CSV file
\DTLloaddb[
  noheader,
  keys={city,population,mayor,export}
]{names}{mydata.csv}

\NewDocumentCommand{\printcity}{ m }{%
  \textbf{#1}. % Print city
  \textit{Population}: \DTLfetch{names}{city}{#1}{population}. % Print population
  \textit{Export}: \DTLfetch{names}{city}{#1}{export}.
}

\begin{document}

\printcity{Toronto}

\printcity{Edmonton}

\printcity{Montreal}

\end{document}

如果需要,您可以添加内容存在条件。但是,由于您正在创建数据库,因此可能不需要这样做。

相关内容