如何使用 odsfile 手动选择行范围?

如何使用 odsfile 手动选择行范围?

如何使用 odsfile 选择多个不连接的行范围,如以下伪代码所示:

\documentclass{article}
%% Compile with lualatex
\usepackage{odsfile}
\begin{document}
\begin{tabular}{lll}
\includespread[file=test.ods,range=a2:a10 and c2:c10]
\end{tabular}
\end{document}

或者

\documentclass{article}
%% Compile with lualatex
\usepackage{odsfile}
\begin{document}
\begin{tabular}{lll}
\includespread[file=test.ods,range=a2:a10 and c2:e10]
\end{tabular}
\end{document}

答案1

OP 在问题中提到了“行范围”。但是,从此处提供的初始答案的评论来看,OP 要求进行更显著的改进。也就是说,OP 希望只读取表块中的选定列。

由于odsfile包和tabular交互的方式,看起来,该过程不是读取一列数据然后读取另一列数据,而是逐行读取数据,根据需要提取所需的列以形成行tabular,然后移动到下一行。

正如我所评论的,对于行范围,可以使用 的多次调用\includespread,每个行范围一次。对于选择性(非包含性)列范围,必须巧妙地使用该rowtemplate函数。我无法&直接在函数中包含列分隔符rowtemplate;但是,我确实通过 包含了它\ampersand,它被定义为&

MWE 中的文件pokus.ods是软件包附带的示例odsfile,位于https://ctan.org/tex-archive/macros/luatex/latex/odsfile

在 MWE 中,我从电子表格“List1”导入一个矩形块,从a行的列1c行的列3,但我习惯于rowtemplate仅输出每行的列ac(忽略b列)。然后,我再次从行6、列到a导入c(但再次忽略列b)。

\documentclass[12pt]{article}
\usepackage{odsfile}
\newcommand\ampersand{&}
\begin{document}
\begin{tabular}{lc}
\includespread[file=pokus.ods,sheet=List1,range=a1:c3,rowseparator={\\},
  rowtemplate={\unskip-{1} \ampersand -{3}}] \\
\includespread[sheet=List1,range=a6:c6,rowseparator={\\},
  rowtemplate={\unskip-{1} \ampersand -{3}}] 
\end{tabular}
\end{document}

pokus.ods(List1 标签):

在此处输入图片描述

输出:

在此处输入图片描述

相关内容