将 LaTeX 文档链接到 Excel 数据

将 LaTeX 文档链接到 Excel 数据

我正在为需要插入零件编号的构建日志编写文档。我不想让某人浏览并更新文档中的零件编号以反映修订和更新,而是希望将零件简单地列在 Excel 电子表格中(可能跨工作表进行组织),并带有静态行号(这样我就可以以某种方式在 LaTeX 中引用它)。然后,可以对电子表格进行修订并重新编译文档。

我想要的是这样的命令:

\insertdata{filename.xlsx}{sheetname}{linenumber}{pn}这将生成零件编号。最后两个参数基本上是行/列选择器(“pn”代表“零件编号”,但也可以是“名称”或“说明”等,用于表示存储在该行中的各种数据)。

我已经看到exceltex可以重新包装软件包来执行此操作,但我在 Windows 上工作,并且我不能保证其他使用它的人会安装 Cygwin,因此它需要完全依赖于相当原始的 Windows 环境。

我也不想将电子表格导出为 CSV,除非可以以某种方式将其集成到构建器中。

如果相关的话,我在 Windows 8.1 上使用 MikTeX 2.9 和 Sublime Text 3 与 LaTeXTools。

谢谢!

答案1

datatool软件包中有一个 Java 辅助应用程序datatooltk具有批处理模式和 GUI 模式。批处理模式是默认模式,允许将其集成到文档构建过程中。使用此示例 XLS 文件products举个例子,我可以使用从第一张表(标记为)中获取数据datatooltk并将其存储在datatool内部数据库结构中:

% arara: datatooltk: {
% arara: --> output: products.dbtex,
% arara: --> xls: shop.xls,
% arara: --> sheet: products }
% arara: pdflatex
\documentclass{article}

\usepackage{datatool}

\DTLloaddbtex{\products}{products.dbtex}

\begin{document}

Fetch values from row 3:
\DTLassign{\products}{3}{\Product=Product,\Price=Price (inc VAT)}
Product: \Product. Price: \Price.

\end{document}

我已经包含了arara指令,但如果您不使用arara构建过程(假设文件名为test.tex):

datatooltk --output products.dbtex --xls shop.xls --sheet products
pdflatex test

从第 3 行获取值:产品:USB 记忆棒。价格:18.0。

相关内容