Menggunakan pgfplotstable dan longtable dengan .csv

Oct 15 2020

Saya mencoba mengimpor .csv saat menggunakan longtabledan pdfplotstabletypeset. Saya tidak bisa mendapatkan longtableperintah untuk bekerja.

\documentclass[12pt,a4paper,oneside]{report}

\usepackage{booktabs}
\usepackage{tabularx}
\usepackage{longtable}
\usepackage{pgfplotstable}
\usepackage{ragged2e}
\usepackage{pdfpages}
\usepackage{pdflscape}
\usepackage{tikz}
\usepackage{subcaption}

\begin{filecontents*}{MYFILE.csv}
Software,A
Software,A
Software,A
Software,A
Software,A
Software,A
Software,A
Software,A
Software,A
Software,A
Software,A
Software,A
Software,A
Software,A
Software,A
Software,A
Software,A
Software,A
Software,A
Software,A
Software,A
Software,A
Software,A
Software,A
Software,A
Software,A
Software,A
Software,A
Software,A
\end{filecontents*}

\begin{document}

\begin{table}[!htb]
%   \setstretch{1.1}
    \pgfplotstabletypeset[
        column type=,
        col sep=comma, 
        string type,
        begin table={\begin{longtable}{p{5cm}p{10cm}}},
%       begin table={\begin{longtable}{@{*}r||p{1in}@{*}},
            end table={\end{longtable}},
        every head row/.style={
            before row={\toprule},
            after row={\midrule\addlinespace}},
        assign column name/.style={/pgfplots/table/column name={\textbf{#1}}},
        every last row/.style={after row=\midrule},
        every row no 5/.style={after row=\toprule\addlinespace},
        every row no 6/.style={after row=\midrule\addlinespace},
        every row 6 column 0/.style={postproc cell content/.style={@cell content=\textbf{##1}}},
        every row no 14/.style={after row=\toprule\addlinespace},
        every row no 15/.style={after row=\midrule\addlinespace},
        every row 15 column 0/.style={postproc cell content/.style={@cell content=\textbf{##1}}},
        every row no 18/.style={after row=\toprule\addlinespace},
        every row no 19/.style={after row=\midrule\addlinespace},
        every row 19 column 0/.style={postproc cell content/.style={@cell content=\textbf{##1}}},
        every row no 22/.style={after row=\toprule\addlinespace},
        every row no 23/.style={after row=\midrule\addlinespace},
        every row 23 column 0/.style={postproc cell content/.style={@cell content=\textbf{##1}}},
        every row no 26/.style={after row=\toprule\addlinespace},
        every row no 27/.style={after row=\midrule\addlinespace},
        every row 27 column 0/.style={postproc cell content/.style={@cell content=\textbf{##1}}},
    ]{MYFILE.csv}
\end{table}

\end{document}

Jawaban

TorbjørnT. Oct 14 2020 at 23:48

Sebuah tablelingkungan tidak bisa istirahat di halaman, longtableini dimaksudkan untuk menjadi digunakan di luar tables. Oleh karena itu, hapus \begin{table}dan \end{table}. Jika Anda menginginkan keterangan di atas tabel, lakukan misevery head row/.style={before row={\caption{foo}\\\toprule}, ...

SP1 Oct 15 2020 at 14:38

Inilah kode yang berhasil untuk saya:

\pgfplotstabletypeset[
    column type=,
    col sep=comma, 
    string type,
    begin table={\begin{longtable}{p{5cm}p{10cm}}},
        end table={\end{longtable}},
    every head row/.style={
        before row={\toprule},
        after row={\midrule\addlinespace}},
    assign column name/.style={/pgfplots/table/column name={\textbf{#1}}},
    every last row/.style={after row=\midrule},
    every row no 5/.style={after row=\toprule\addlinespace},
    every row no 6/.style={after row=\midrule\addlinespace},
    every row 6 column 0/.style={postproc cell content/.style={@cell content=\textbf{##1}}},
    every row no 14/.style={after row=\toprule\addlinespace},
    every row no 15/.style={after row=\midrule\addlinespace},
    every row 15 column 0/.style={postproc cell content/.style={@cell content=\textbf{##1}}},
    every row no 18/.style={after row=\toprule\addlinespace},
    every row no 19/.style={after row=\midrule\addlinespace},
    every row 19 column 0/.style={postproc cell content/.style={@cell content=\textbf{##1}}}
    ]{MYFILE.csv}