我有一个简单的 CSV 文件,类似于:
pens, 23
bottles, 5
spoons, 6
chairs, 5
books, 12
我想将其转换为 PDF 文档。我不知道该怎么做。我已经安装了麦克泰克斯。如果您能帮助我开始这项工作,那将会很有帮助。
我试图解决的问题是pdf generation
。因此输入将是一个包含大约一百万个条目的 CSV 文件,我想生成一个 PDF 文档。
答案1
以下是使用csvsimple
。
您可以使用\csvautotabular
它来csvsimple
为您构建一个表格:
\csvautotabular[
table head={%
\hline
\bfseries Thing & \bfseries Amount \\
\hline}]%
{pens_and_bottles.csv}
或者,如果您加载booktabs
包,那么您可以使用它\csvautobooktabular
来获得更漂亮的表格:
\csvautobooktabular[
table head={%
\toprule
\bfseries Thing & \bfseries Amount \\
\midrule}]%
{pens_and_bottles.csv}
csvsimple
或者你可以使用 的CSV 处理器构建自己的:
\begin{tabular}{lc}
\toprule
\bfseries Thing & \bfseries Amount \\
\midrule
\csvreader[late after line=\\]{pens_and_bottles.csv}{}%
{\csvcoli & \csvcolii}
\bottomrule
\end{tabular}
如果您使用的是相当大的 CSV 文件,这将占用多个页面,那么您可以加载包longtable
然后使用\csvautobooklongtable
(或者构建您自己的longtable
,如前面的示例):
\csvautobooklongtable[
table head={%
\toprule
\bfseries Thing & \bfseries Amount \\
\midrule},
table foot={\\\bottomrule}]%
{pens_and_bottles.csv}
包含四个选项的示例:
\RequirePackage{filecontents}
\begin{filecontents*}{pens_and_bottles.csv}
pens, 23
bottles, 5
spoons, 6
chairs, 5
books, 12
\end{filecontents*}
\documentclass{article}
\usepackage{booktabs}
\usepackage{csvsimple}
\usepackage{longtable}
\begin{document}
\csvautotabular[
table head={%
\hline
\bfseries Thing & \bfseries Amount \\
\hline}]%
{pens_and_bottles.csv}
\bigskip
\csvautobooktabular[
table head={%
\toprule
\bfseries Thing & \bfseries Amount \\
\midrule}]%
{pens_and_bottles.csv}
\bigskip
\begin{tabular}{lc}
\toprule
\bfseries Thing & \bfseries Amount \\
\midrule
\csvreader[late after line=\\]{pens_and_bottles.csv}{}%
{\csvcoli & \csvcolii}
\bottomrule
\end{tabular}
\bigskip
\csvautobooklongtable[
table head={%
\toprule
\bfseries Thing & \bfseries Amount \\
\midrule},
table foot={\\\bottomrule}]%
{pens_and_bottles.csv}
\end{document}
答案2
下面是一个例子:
\documentclass{article}
\usepackage{booktabs}
\usepackage{csvsimple}
\usepackage{caption}
% this code is only to create myfile.csv, you don't need it:
\usepackage{filecontents}
\begin{filecontents*}{myfile.csv}
pens, 23
bottles, 5
spoons, 6
chairs, 5
books, 12
\end{filecontents*}
\begin{document}
\begin{table}[htb]\centering
\caption{A caption}
\csvreader[
tabular=lr,
table head={\toprule
My objects & My number\\
\midrule},
table foot=\bottomrule,
no head,
]{myfile.csv}{}{\csvcoli & \csvcolii}
\end{table}
\end{document}