如何更改最后一行单个单元格的颜色背景

如何更改最后一行单个单元格的颜色背景

使用 pgfplotstable,我想根据 csv 输入为自动创建的表格的最后一行中的单个单元格着色。由于表格的长度不同,我需要动态地为最后一个单元格着色。

我发现此解决方案,这与我想要实现的目标非常接近。

我只是在这条代码行上挣扎:

 every row 2 column 3/.style={
 ...

有没有办法插入行数,同时\pgfplotstabletypeset产生类似的结果?

every row LAST column 3/.style={
...

答案1

您可以通过以下方式将格式添加到列描述中:

postproc cell content/.append code={\ifnum\numexpr\pgfplotstablerow+1=\pgfplotstablerows %
\pgfkeys{/pgfplots/table/@cell content/.add={\cellcolor{red!10!white}}{}}\fi}

关键变量是\pgfplotstablerows存储总行数。

示例输出

\documentclass{article}

%
\usepackage{siunitx}
\DeclareSIUnit{\krypt}{\ensuremath{\mathcal{K}r}}
\usepackage{tikz}
\usepackage{pgfplots}\pgfplotsset{compat=1.9} 
\usepackage{pgfplotstable}
\usepackage{booktabs, colortbl}

\pgfplotstableread{
    kr  Rreal   Rlin    deltaR
    0   138.16  143     -4.84
    1   154.18  159.8   -5.62
    2   195.01  176.6   18.41
    3   202.82  193.4   9.42
    4   205.55  210.2   -4.65
}{\fitR}

\begin{document}

\pgfplotstabletypeset[zerofill, 
    %dec sep align,
    columns/kr/.style={precision=1, column name={Kryptorad (\si{\krypt})}},
    columns/Rreal/.style={precision=2, column name={$R(c)$ (real) (\si{k\ohm})}},
    columns/Rlin/.style={precision=2, column name={$R(c)$ (lin) (\si{k\ohm})}},
    columns/deltaR/.style={precision=2, column name={$\epsilon_\mathrm{abs}$ (lin) (\si{k\ohm})},
    column type={r}, fixed,
    postproc cell content/.append code={\ifnum\numexpr\pgfplotstablerow+1=\pgfplotstablerows %
    \pgfkeys{/pgfplots/table/@cell content/.add={\cellcolor{red!10!white}}{}}\fi}},
    every head row/.style={before row=\toprule,after row=\midrule},
    every last row/.style={after row=\bottomrule},
]{\fitR}

\end{document}

相关内容