如何从 Excel 导入数据并将其格式化为 LaTeX 中的文本?

如何从 Excel 导入数据并将其格式化为 LaTeX 中的文本?

我在 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}

这就是我目前所取得的成果(这是我的“波尔多”部分和“红色”小节的开头): 这是我的“波尔多”部分和“红色”小节的开头

相关内容