我正在尝试执行以下操作:
将包含数字和字符串数据的 csv(或其他类似格式)外部文件读入对象;
从该对象引用/获取特定值以用于表格或图形中的特定单元格。
也就是说,我不想将 csv 文件等转换为表格。我不想使用包来构建表格。
因此,例如假设我有以下代码来生成一个非常简单的表格:
\documentclass[]{article}
\begin{document}
\begin{table}[]
\centering
\caption{My example}
\begin{tabular}{lllll}
1 & 2 & 3 & 4 & 5 \\
6 & 7 & 8 & xyz & 9 \\
10 & 11 & 12 & 13 & 14
\end{tabular}
\end{table}
\end{document}
在写有“xyz”的地方,我实际上想编写一个命令来引用/获取 csv 或类似文件的特定行/列的值。有没有办法实现这样的事情?
答案1
这个readarray
包可能对这个努力有用。
\begin{filecontents*}{myfile.csv}
Name, Age, Profession
Mike Smith, 33, engineer
Sally Doe, 27, hairdresser
Jane Harding, 57, mathematician
\end{filecontents*}
\documentclass[]{article}
\usepackage{readarray}
\readarraysepchar{,}
\begin{document}
\readdef{myfile.csv}\mydata
\readarray*\mydata\myarray[-,\ncols]
\begin{table}[]
\centering
\caption{My example}
\begin{tabular}{lllll}
1 & 2 & 3 & 4 & 5 \\
6 & 7 & 8 & ``\myarray[3,3]'' & 9 \\
10 & 11 & 12 & 13 & 14
\end{tabular}
\end{table}
The array \textbackslash myarray has \myarrayROWS{} rows,
\myarrayCOLS{} columns, for a total of \myarrayCELLS{} cells.
The first column of row four contains ``\myarray[4,1]''.
\end{document}