我在 Excel 上有一个大型数据库电子表格,其中包含产品列表,我想使用它的数据在 LaTeX 中编写格式化的文本。
该表如下所示:
年份 / 产品名称 / 详情
2000 / AAAAA / aaaaa
1975 / BBBBB / bbbbb
1998 / CCCCC / ccccc
...
我想在乳胶中使用此文件中的数据并得到类似于此的文本结果(不是表格):
2000年AAAAA,啊啊啊
1975 BBBBB,bbbb
1998年中国化学工业联合会,cccc
...
最好的解决方案是什么?
我应该使用 excel2latex、csvsimple 还是其他什么?
它让我想起了参考书目论文引用,但我已经多年没有使用 LaTeX 了,而且我真的不记得现在有什么有用的东西。
我打算从头开始重新学习 LaTeX,但我认为可能存在一种非常简单的方法来获得我想要的结果,而且它可以节省我向社区询问的数小时的研究时间。^^'
答案1
我回来了,找到了问题的部分解决方案。
请记住,我几乎是一个完全的初学者,所以我正在尝试。^^'(我使用 Overleaf 编写代码,因为我尝试过 RStudio,但 datatool 包显然不适用于 R 版本 3.5.1)
为了简化,这是我使用的模式:
% Load CSV database (here database.csv)
% and give it a label (here DB)
\DTLloaddb{DB}{database.csv}
%%%%%%%%%%%%%%%%
% Iteration
% Here in the D column I can have d1, d2, etc.
% but I only want to display the result for the rows with d1:
\DTLforeach*[\DTLiseq{\D}{d1}] % Condition
{DB} % Database label
{\A=A,\B=B,\C=C,\D=D,\E=E} % Assignment
{% Stuff to do at each iteration:
\item[]
\textbf{\A}
\textbf{ \B}
\textit{ \C}
(\E)
}
%%%%%%%%%%%%%%%%
在我的特定情况下,我正在做一份酒单/菜单(Carte des Vins),最终我想要:
1)按酒类分类(波尔多 / 勃艮第 / 波特酒 / 世界其他地区)
目前我使用的 csv 文件只包含波尔多葡萄酒(bordeaux.csv),但最终我想使用包含所有葡萄酒的文件(wine.csv)
2)按类型排序(红色 / 白色 / 甜白色)
正如您将在下面看到的,我成功地做到了这一点,但也许有更好的方法来做同样的事情。
3)文本格式如下:
优质的 姓名, 分类(起源)
前任: 2009 大村庄城堡, 高级波尔多酒(波尔多)
我唯一遇到麻烦的是逗号,因为当分类列为空时,我不想得到“优质的 姓名,“带有无用的逗号......所以现在我让文本没有逗号。
这是我的全部代码:
\documentclass[12pt]{article}
\usepackage[utf8]{inputenc}
% Pour modifer les marges
\usepackage{geometry}
% Marges du document
\geometry{hmargin=2.5cm,vmargin=1.5cm}
% To remove the heading of the table of contents ("Contents")
\makeatletter
\renewcommand\tableofcontents{%
\@starttoc{toc}%
}
\makeatother
% To make itemized lists
% This package provides user control over the layout of the three basic list
% environments: enumerate, itemize and description. It supersedes both enumerate
% and mdwlist (providing well-structured replacements for all their funtionality),
% and in addition provides functions to compute the layout of labels, and to
% ‘clone’ the standard environments, to create new environments with counters of
% their own.
\usepackage{enumitem}
% Datatool package to load external files (cdv)
\usepackage{datatool}
\Huge\title{Carte des Vins}
\author{Buck's}
\date{September 2018}
\begin{document}
\maketitle
\tableofcontents
%--------------------------%
\newpage
\section{Bordeaux}
% Load CSV database and give it a name
\DTLloaddb{BOR}{bordeaux.csv}
\subsection{Red}
%%%%%%%%%%%%%%%%
% Iteration
\DTLforeach*[\DTLiseq{\Type}{Red}] % Condition
{BOR} % Database label
{\Vintage=Vintage,\Name=Name,\Classification=Classification,\Type=Type,\Origin=Origin} % Assignment
{% Stuff to do at each iteration:
\item[]
\textbf{\Vintage}
\textbf{ \Name}
\textit{ \Classification}
(\Origin)
}
%%%%%%%%%%%%%%%%
\subsection{White}
%%%%%%%%%%%%%%%%
% Iteration
\DTLforeach*[\DTLiseq{\Type}{White}] % Condition
{BOR} % Database label
{\Vintage=Vintage,\Name=Name,\Classification=Classification,\Type=Type,\Origin=Origin} % Assignment
{% Stuff to do at each iteration:
\item[]
\textbf{\Vintage}
\textbf{ \Name}
\textit{ \Classification}
(\Origin)
}
%%%%%%%%%%%%%%%%
\subsection{Sweet White}
%%%%%%%%%%%%%%%%
% Iteration
\DTLforeach*[\DTLiseq{\Type}{Sweet white}] % Condition
{BOR} % Database label
{\Vintage=Vintage,\Name=Name,\Classification=Classification,\Type=Type,\Origin=Origin} % Assignment
{% Stuff to do at each iteration:
\item[]
\textbf{\Vintage}
\textbf{ \Name}
\textit{ \Classification}
(\Origin)
}
%%%%%%%%%%%%%%%%
%--------------------------%
\newpage
\section{Burgundy}
\subsection{Red}
\subsection{White}
%--------------------------%
\newpage
\section{Rest of the World}
%--------------------------%
\newpage
\section{Port}
%--------------------------------
\end{document}