Datatool 无法将电子邮件评估为空?

Datatool 无法将电子邮件评估为空?

给定一个 test.csv 文件,其内容如下:

"BILL TO EMAIL"
"[email protected]"
""
"[email protected]"
"[email protected]"

使用 xelatex 中的 datatool 进行处理:

\documentclass{memoir}
\usepackage{datatool}
\DTLloaddb{data}{test.csv}
\begin{document}
\DTLforeach*{data}{\billtoEM=BILL TO EMAIL}{\billtoEM"\DTLifnull{\billtoEM}{N}{Y}"\par}
\end{document}

结果是:

测试YYYYY

我如何让测试对第二条记录的评估结果为 N?

答案1

空值和空值之间存在差异(与编程语言类似"" != null)。如果从 CSV 文件加载数据,则缺失值为空。(该行的该列中有一个空白值。)在构建未分配列值的数据库时,可能会出现空值。(例如,使用 定义数据\DTLnewdb或使用 从 SQL 中提取数据datatooltk。)

etoolbox您可以使用 测试空值\ifdefempty

\documentclass{memoir}
\usepackage{datatool}
\DTLloaddb{data}{test.csv}
\begin{document}
\DTLforeach*{data}{\billtoEM=BILL TO EMAIL}{\billtoEM"\ifdefempty{\billtoEM}{N}{Y}"\par}
\end{document}

或者,您也可以使用\DTLifnullorempty它来测试是否为空值或为空值。

更多详细信息请参阅用户手册 5.5“空值” datatool

相关内容