从 csv 文件中获取特定行/列的值以用于文本、图形或表格单元格

从 csv 文件中获取特定行/列的值以用于文本、图形或表格单元格

我正在尝试执行以下操作:

  1. 将包含数字和字符串数据的 csv(或其他类似格式)外部文件读入对象;

  2. 从该对象引用/获取特定值以用于表格或图形中的特定单元格。

也就是说,我不想将 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}

在此处输入图片描述

相关内容