![尝试读取 csv 文件来创建表时出错](https://linux22.com/image/334578/%E5%B0%9D%E8%AF%95%E8%AF%BB%E5%8F%96%20csv%20%E6%96%87%E4%BB%B6%E6%9D%A5%E5%88%9B%E5%BB%BA%E8%A1%A8%E6%97%B6%E5%87%BA%E9%94%99.png)
我有一个如下的 csv:
CategoryName,Pageviews
Restaurants,37951
Shopping,22002
Things to do,20067
Nightlife,10612
Gifts,9194
Food Shopping,8655
Useful Stuff,8536
Parenting ,8353
Home,7654
Fitness,6623
Event & Party Planning,6387
Sports,4351
Health & Wellness,4201
Women's Beauty,3807
Pets,2923
Vehicles,2492
Male Grooming,2339
Hotels & Rentals ,2332
Charities,364
我在用着
\usepackage{csvsimple}
使用以下代码读取 csv 并将其打印为表格。
\csvautotabular{猫.csv}
这是行不通的。
我也尝试过
\begin{tabular}{l|c}%
\bfseries Category & \bfseries Metric
\csvreader[head to column names]{cats.csv}{}
{\\\hline\CategoryName\ & \metric}
\end{tabular}
这也不起作用,我猜是因为 CategoryName 字段中有空格。有没有不删除空格的解决方法可以解决这个问题?我在手册中找不到解决方案csvsimple
。
答案1
您可以使用 来做到这一点,只要您在读取文件之前\csvautotabular
更改 的类别代码即可。&
\begin{filecontents*}{\jobname.csv}
CategoryName,Pageviews
Restaurants,37951
Shopping,22002
Things to do,20067
Nightlife,10612
Gifts,9194
Food Shopping,8655
Useful Stuff,8536
Parenting ,8353
Home,7654
Fitness,6623
Event & Party Planning,6387
Sports,4351
Health & Wellness,4201
Women's Beauty,3807
Pets,2923
Vehicles,2492
Male Grooming,2339
Hotels & Rentals ,2332
Charities,364
\end{filecontents*}
\documentclass{article}
\usepackage{csvsimple}
\begin{document}
\csvautotabular[before reading={\catcode`&=12}]{\jobname.csv}
\end{document}
答案2
问题在于 & 符号。编辑 CSV 文件以用或 文本字符串&
替换所有可解决此问题。&
\&
and
“&” 符号是特殊字符在表格和数组环境中描绘字段。要访问它,您需要对其进行转义。该csvsimple
包不会对您的 csv 数据进行任何健全性检查:它读取数据并将其包装在适当的 LaTeX 代码中以供显示和使用。您的 csv 文件中的内容是逐字读取的。