如何使用 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
行的列1
到c
行的列3
,但我习惯于rowtemplate
仅输出每行的列a
和c
(忽略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 标签):
输出: