使用长表将表格拆分到多个页面

使用长表将表格拆分到多个页面

我正在使用 excel 到 latex 插件从 excel 生成表格,但是,当表格太长时,它不会自动拆分为 2 页(或更多页)。有没有简单的方法可以做到这一点?我找到了 longtable 包,但是,我无法将它与 LateX 生成的以下代码一起使用

% Table generated by Excel2LaTeX from sheet 'Sheet1'
\begin{table}[htbp]
  \centering
  \caption{Trial}
    \begin{tabular}{|r|r|r|r|r}
\cline{1-4}    Hello & How   & Are   & You   &  \bigstrut\\
\cline{1-4}    \multicolumn{1}{|c|}{\multirow{2}[4]{*}{1}} & 2     & \multicolumn{1}{c|}{\multirow{2}[4]{*}{4}} & \multicolumn{1}{c|}{\multirow{2}[4]{*}{5}} &  \bigstrut\\
\cline{2-2}    \multicolumn{1}{|c|}{} & 3     & \multicolumn{1}{c|}{} & \multicolumn{1}{c|}{} &  \bigstrut\\
\cline{1-4}    6     & 7     & 8     & 9     &  \bigstrut\\
\cline{1-4}    \multicolumn{1}{r}{} & \multicolumn{1}{r}{} & \multicolumn{1}{r}{} & \multicolumn{1}{r}{} &  \bigstrut[t]\\
    \multicolumn{1}{r}{} & \multicolumn{1}{r}{} & \multicolumn{1}{r}{} & \multicolumn{1}{r}{} &  \\
    \end{tabular}%
  \label{tab:addlabel}%
\end{table}%

我使用了一个简单的例子,以免与这里的代码混淆(这个例子不跨越 2 页)但如果确实如此,需要进行哪些更改?

在此处输入图片描述

答案1

正如您所注意到的,为了让 LaTeX 将长表格拆分到跨页面,必须使用环境longtable而不是嵌套table环境tabular

以下示例首先显示由您的代码生成的表(部分代码已简化),然后显示使用longtable环境生成的同一张表。四个主要区别如下:

  • 环境longtable将指定为环境参数的材料作为其参数tabular不是尝试将 a 嵌套longtable在 a 内table

  • 在 后插入\\(换行指令) \caption

  • \endfirsthead由于表格的页眉和页脚可能会重复出现,因此请明确指定重复的内容。页眉和页脚内容以名为、\endhead\endfoot和 的指令分隔\endlastfoot

  • 无需提供\centering指令;longtable默认居中。

在此处输入图片描述

\documentclass{article}
\usepackage{multirow,longtable,bigstrut,caption}
\begin{document}

\begin{table}[h!]
\centering
\caption{A Trial} \label{tab:addlabel}
\begin{tabular}{|r|r|r|r|}
\hline 
Hello & How & Are & You \bigstrut\\
\hline 
\multicolumn{1}{|c|}{\multirow{2}[4]{*}{1}} & 2 
& \multicolumn{1}{ c|}{\multirow{2}[4]{*}{4}} 
& \multicolumn{1}{ c|}{\multirow{2}[4]{*}{5}} \bigstrut\\
\cline{2-2} 
\multicolumn{1}{|c|}{} & 3 & & \bigstrut\\
\hline 
6 & 7 & 8 & 9 \bigstrut\\
\hline 
\end{tabular}
\end{table}

\begin{longtable}{|r|r|r|r|}
\caption{Another Trial} \label{tab:addanotherlabel}\\
   \hline 
   Hello & How & Are & You \bigstrut\\
   \hline
   \endhead  % delimiter for header
   \hline
   \endfoot  % delimiter for footer
\multicolumn{1}{|c|}{\multirow{2}[4]{*}{1}} & 2 
& \multicolumn{1}{ c|}{\multirow{2}[4]{*}{4}} 
& \multicolumn{1}{ c|}{\multirow{2}[4]{*}{5}} \bigstrut\\
\cline{2-2} 
\multicolumn{1}{|c|}{} & 3 & & \bigstrut\\
\hline 
6 & 7 & 8 & 9 \bigstrut \\
\end{longtable}

\end{document}

答案2

稍加修改的基于longtablebooktabs和 &multirow的解决方案:

\documentclass[11pt,a4paper]{article}
\usepackage{multirow}
\usepackage{booktabs} % To nicely typeset tabular material
\usepackage{longtable}  % For multipage tables!
\begin{document}
% Table generated by Excel2LaTeX from sheet 'Sheet1'
\begin{longtable}{ccccc}
\caption[Trial]{Trial\label{tab:addlabel}}\\
%
\toprule
Hello & How & Are & You \\
\midrule
\multirow{2}[4]{*}{1} & 2 & \multirow{2}[4]{*}{4} & \multirow{2}[4]{*}{5} \\
\cmidrule{2-2}
 & 3 &  &  \\
\midrule
6 & 7 & 8 & 9 \\
\bottomrule
\end{longtable}
\end{document}

它看起来像这样:

在此处输入图片描述

相关内容