使用 lualatex 从 excel 文件中提取数据

使用 lualatex 从 excel 文件中提取数据

我有一个 Excel 文件,用作数据库。当然,里面有很多条目(超过 4000 个),我不想使用所有数据来创建我的 PDF。

所以我考虑使用 LuaLaTeX 创建一个脚本来仅使用我需要的数据。

但我不知道如何使用脚本访问我的 Excel 文件。有没有合适的方法?

答案1

当你听从建议时约瑟夫·赖特安德鲁您还可以使用该pgfplotstable包打印 CSV 文件。由于您没有提供示例,因此我只是从这个答案。要查看结果,请参见那里。

\documentclass[margin=5mm,preview]{standalone}
    \usepackage{siunitx} % Formats the units and values
        \sisetup{                           % setup siunitx ...
            round-mode        = places,     % rounds numbers
            round-precision   = 2,          % to 3 places
            per-mode          = symbol,     % kg/dm^3 instead kgm^{-3}
            group-four-digits = true,       % for 1 234,567
        }
    \usepackage{booktabs}           % for table rules

    \usepackage{pgfplotstable}      % Generates table from .csv
    \usepackage{filecontents}       % <--- important: enable table
                                    % refreshing at each compilation
    \usepackage[hang,bf,small]{caption}
%---------------------------------------------------------------%
\begin{filecontents*}{mytable.csv}
Chem.; Avg. Conc.; Avg. Conc. Norm.; Conc. unit; Mass sum; Mass unit
Ammonium ; 159083.33; 114450.21; \micro\gram\per\liter; 2839.463; \kilo\gram
Ammonium* ; 1234.123; 4567.890;  \micro\gram\per\liter; 2839.46; \kilo\gram
\end{filecontents*}
%---------------------------------------------------------------%

\begin{document}
Test of use \verb+siunitx+ units syntax in text \si{\micro\gram\per\liter} and
\si{\kilo\gram},

\captionof{table}{Some caption text}
    \pgfplotstabletypeset[
        multicolumn names,
        col sep=semicolon,  % the separator in our .csv file
        string type,        % added in hopes of enabling alphabetic input.
        header=has colnames,
        every head row/.style={before row=\toprule,after row=\midrule},
        every last row/.style={after row=\bottomrule},
        display columns/0/.style={string type},
        display columns/1/.style={column type={S[table-format=7.3]}},% use
        display columns/2/.style={column type={S[table-format=7.3]}},% siunitx
        display columns/3/.style={column type={s}}, % for units
        display columns/4/.style={column type={S[table-format=5.3]}},% for formatting
        display columns/5/.style={column type={s}}, % for units
            ]{mytable.csv}
\end{document}

关于 Excel 表的过滤:为什么不直接过滤 Excel 表,例如使用该AutoFilter功能,将结果复制到新表并将其保存为 CSV 文件?

要复制“可见单元格”,请查看此资源

答案2

根据 Joseph Wright 和 Andrew 的评论,我将解释我的解决方案:

从 Excel 或 LibreOffice: file > Save as > CSV

在包含列和的文件上使用CVSsimple包:file.cvsnamefirstName

\csvreader
{file.csv}{name=\name,firstName=\firstName}
{
\begin{tabular}
name & first name \\
\name & \firstName
\end{tabular}
}

结果你将得到每个条目的一张表。

相关内容