csvreader 中的 longtable 的“下页继续”

csvreader 中的 longtable 的“下页继续”

我已成功(在本论坛的帮助下)将我的选项显示在表格中,每行均编号并显示价格。

\csvreader[longtable= >{\stepcounter{RowNum}\theRowNum}r 
>{\everypar{\hangindent0.7cm}}p{13cm} b{1.3cm},  filter ifthen=\equal{\csvcolii}{1}  
%,  \multicolumn{3}{r}{{{\scriptsize \textit{ Continued on next page}}}} \\ \endfoot 
]{\excel}{17=\dbo, 18=\deo, 15=\pricel,16=\pricer} 
{& \textbf{\dbo} \deo & \mce  \\ \mce  && \$  \hfill \ifthenelse{\equal{\pricel}{0}} 
{}{\pricel,}\pricer \\ \mce \\ \mce}

当我从页面底部开始表格时,它也会遍历该页面。

我想补充两点:

  1. 价格应该始终与选择保持一致。
  2. 页面底部应显示以下内容:'下页继续',但我不确定在哪里添加\endfoot我找到的作为我的请求的解决方案的评论。

这里运行的 MWE 超过 1 页,价格分为以下几种:

\documentclass[a4paper,12p]{article}

\usepackage{longtable} % allows list to split over the page
\usepackage{pgfplotstable} % for "continued on next page"

\usepackage{tabularx} % for the table format
\newcommand\mce{\multicolumn{1}{c}{}}
\newcounter{RowNum}
\usepackage{siunitx} %counting row numbers

\usepackage{csvsimple} % read Excel tables

\begin{filecontents*}{excel.csv}
included,optioned,dbo,deo,pricel, pricer
0,1,D, d, 12,299
1,0,E,e,0,99
0,1,E,e,0,99
0,1,A, d, 14,299
0,1,D, d, 12,299
1,0,E,e,0,99
0,1,E,e,0,99
0,1,A, d, 14,299
0,1,D, d, 12,299
1,0,E,e,0,99
0,1,E,e,0,99
0,1,A, d, 14,299
0,1,D, d, 12,299
1,0,E,e,0,99
0,1,E,e,0,99
0,1,A, d, 14,299
0,1,D, ddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd, 12,299
1,0,E,e,0,99
0,1,E,e,0,99
0,1,A, d, 14,299
\end{filecontents*}

\begin{document}
\setlength{\parindent}{0pt} % never indent first line


\csvreader[longtable= >{\stepcounter{RowNum}\theRowNum}r >{\everypar{\hangindent0.7cm}}p{3cm} b{1.3cm}, filter ifthen=\equal{\csvcolii}{1} %,  \multicolumn{3}{r}{{{\scriptsize \textit{ Continued on next page}}}} \\ \endfoot
]{excel.csv}{3=\dbo, 4=\deo, 5=\pricel,6=\pricer}{& \textbf{\dbo} \deo & \mce  \\ \mce   && \$  \hfill \ifthenelse{\equal{\pricel}{0}}{}{\pricel,}\pricer \\ \mce \\ \mce}

\end{document}

答案1

帮助满足请求 2 的部分答案:

您可以使用以下table head密钥:

\csvreader[longtable= >{\stepcounter{RowNum}\theRowNum}r >{\everypar{\hangindent0.7cm}}p{3cm} b{1.3cm}, 
           filter ifthen=\equal{\csvcolii}{1} ,
           table head= \multicolumn{3}{r}{{{\scriptsize \textit{ Continued on next page}}}} \\ \endfoot \endlastfoot ,
]{excel.csv}{3=\dbo, 4=\deo, 5=\pricel,6=\pricer}{& \textbf{\dbo} \deo & \mce  \\ \mce   && \$  \hfill \ifthenelse{\equal{\pricel}{0}}{}{\pricel,}\pricer \\ \mce \\ \mce}

(我还添加了\endlastfoot以防止“下页继续”显示在表格的最后一页)。


更新

以下代码也应满足要求 1。我使用\\*而不是\\来防止分页:

\csvreader[longtable= >{\stepcounter{RowNum}\theRowNum}r p{3cm} b{1.3cm}, 
           filter ifthen=\equal{\csvcolii}{1} ,
           table head= \multicolumn{3}{r}{{{\scriptsize \textit{ Continued on next page}}}} \\ \endfoot \endlastfoot]
          {excel.csv}
          {3=\dbo, 4=\deo, 5=\pricel,6=\pricer}
          {       & \textbf{\dbo} \deo & \mce  \\* 
           \mce   &                    & \$  \hfill \ifthenelse{\equal{\pricel}{0}}{}{\pricel,}\pricer \\* 
           \mce \\ 
           \mce}

相关内容