Импорт данных из Excel в таблицы LaTeX (pgfplotstable)

Почему ручной перенос таблиц из Excel в LaTeX — это тупик

В ходе научных исследований и инженерных расчетов данные непрерывно меняются: провели новую серию измерений, пересчитали формулу в Excel — и вся таблица из 50 строк изменилась. Если переносить каждую ячейку в LaTeX вручную через амперсанды & и слэши \\, вы потратите часы и неизбежно допустите опечатки.

Идеальный инженерный подход — связать файл данных напрямую с документом LaTeX. При обновлении расчетов документ пересобирается автоматически с новыми числами. А чтобы строки данных не выглядели тесно, используйте макрос для настройки высоты строк в таблицах.

Подготовка данных: экспорт из Microsoft Excel в формат CSV

В Excel сохраните нужный лист через меню «Сохранить как» → «CSV (разделители — запятые)» или «Текстовый файл с разделителями табуляции». В русскоязычной версии Excel разделителем столбцов традиционно выступает точка с запятой ;, а десятичным разделителем — запятая ,.

Конвертировать Excel в таблицу LaTeX: базовый вызов pgfplotstable

Для чтения данных подключите пакет pgfplotstable (он входит в состав TeX Live и надстраивается над pgfplots):

LaTeX Преамбула
\usepackage{pgfplotstable}
\usepackage{booktabs}
\pgfplotsset{compat=1.18}

Теперь, чтобы конвертировать excel в таблицу latex, достаточно одной строки:

LaTeX Вставка
\pgfplotstabletypeset[col sep=semicolon]{measurements.csv}

Если числа в файле записаны с десятичной запятой, добавьте опцию read comma as period — подробнее в следующем разделе.

Если импортируемый массив данных слишком широк для книжной страницы, оберните его в окружение для вращения широких таблиц sidewaystable.

Pgfplotstable чтение CSV: разделители, кодировка и русская запятая

При использовании pgfplotstable чтение csv можно настроить с ювелирной точностью под российские стандарты:

LaTeX Тонкая настройка
\pgfplotstabletypeset[
    col sep=semicolon,               % Разделитель колонок (точка с запятой из Excel)
    string type,                     % Если в колонках есть текст
    every head row/.style={
        before row=\toprule,
        after row=\midrule
    },
    every last row/.style={
        after row=\bottomrule
    }
]{data.csv}

Если в CSV содержатся вещественные числа, которые нужно автоматически округлить до 2 знаков после запятой и заменить десятичную точку на русскую запятую по ГОСТу:

LaTeX Округление и ГОСТ запятая
\pgfplotstabletypeset[
    col sep=comma,
    every numeric column/.style={
        precision=2,
        fixed,
        dec sep align,
        /pgf/number format/use comma, % десятичная запятая при выводе
        set thousands separator={\,}
    }
]{experiment.csv}

Без опции use comma pgfplotstable выводит десятичную точку: 1.23 вместо 1,23.

Главная ловушка русского Excel — числа в самом файле записаны с запятой («2,5»), а pgfplotstable ждёт точку. При col sep=semicolon такой файл останавливает сборку с ошибкой Could not parse input '2,5' as a floating point number. Опция read comma as period читает запятую как десятичный разделитель, а use comma возвращает её при выводе:

LaTeX CSV из русского Excel
\pgfplotstabletypeset[col sep=semicolon, read comma as period,
  /pgf/number format/use comma]{data.csv}

Профессиональная стилизация: шапка, границы и округление

Вы можете переименовывать столбцы таблицы прямо в LaTeX, не меняя заголовки в самом файле CSV:

LaTeX Переименование столбцов
\pgfplotstabletypeset[
    col sep=semicolon,
    columns/time/.style={column name={Время $t$, с}},
    columns/voltage/.style={column name={Напряжение $U$, В}},
    columns/current/.style={column name={Ток $I$, мА}}
]{measurements.csv}

Практические советы

1

Храните CSV рядом с исходником .tex

Поместите файл data.csv в ту же папку проекта, что и основной файл main.tex, чтобы компилятор сразу находил его по относительному пути.

2

Интеграция в Labkeeper

В онлайн-редакторе Labkeeper загрузите CSV в файловый менеджер проекта (файлы доступны после входа) и нажмите «Выполнить»: таблица появится в PDF после сборки. Промежуточные суммы pgfplotstable сам не считает — их нужно описать в коде или подготовить заранее. Для расчётов удобен вычислительный сегмент Labkeeper: функция load_csv читает колонки файла в массивы, а table выводит результат таблицей.

Попробуйте прямо сейчас

Автоматизируйте таблицы в Labkeeper

Онлайн-платформа с поддержкой pgfplotstable: загрузка CSV из Excel и сборка таблиц в PDF.

Другие статьи