Импорт данных из Excel в таблицы LaTeX (pgfplotstable)
Почему ручной перенос таблиц из Excel в LaTeX — это тупик
В ходе научных исследований и инженерных расчетов данные непрерывно меняются: провели новую серию измерений, пересчитали формулу в Excel — и вся таблица из 50 строк изменилась. Если переносить каждую ячейку в LaTeX вручную через амперсанды & и слэши \\, вы потратите часы и неизбежно допустите опечатки.
Идеальный инженерный подход — связать файл данных напрямую с документом LaTeX. При обновлении расчетов документ пересобирается автоматически с новыми числами. А чтобы строки данных не выглядели тесно, используйте макрос для настройки высоты строк в таблицах.
Подготовка данных: экспорт из Microsoft Excel в формат CSV
В Excel сохраните нужный лист через меню «Сохранить как» → «CSV (разделители — запятые)» или «Текстовый файл с разделителями табуляции». В русскоязычной версии Excel разделителем столбцов традиционно выступает точка с запятой ;, а десятичным разделителем — запятая ,.
Конвертировать Excel в таблицу LaTeX: базовый вызов pgfplotstable
Для чтения данных подключите пакет pgfplotstable (он входит в состав TeX Live и надстраивается над pgfplots):
\usepackage{pgfplotstable}
\usepackage{booktabs}
\pgfplotsset{compat=1.18}
Теперь, чтобы конвертировать excel в таблицу latex, достаточно одной строки:
\pgfplotstabletypeset[col sep=semicolon]{measurements.csv}
Если импортируемый массив данных слишком широк для книжной страницы, оберните его в окружение для вращения широких таблиц sidewaystable.
Pgfplotstable чтение CSV: разделители, кодировка и русская запятая
При использовании pgfplotstable чтение csv можно настроить с ювелирной точностью под российские стандарты:
\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 знаков после запятой и заменить десятичную точку на русскую запятую по ГОСТу:
\pgfplotstabletypeset[
col sep=comma,
every numeric column/.style={
precision=2,
fixed,
dec sep align,
set thousands separator={\,}
}
]{experiment.csv}
Профессиональная стилизация: шапка, границы и округление
Вы можете переименовывать столбцы таблицы прямо в LaTeX, не меняя заголовки в самом файле CSV:
\pgfplotstabletypeset[
col sep=semicolon,
columns/time/.style={column name={Время $t$, с}},
columns/voltage/.style={column name={Напряжение $U$, В}},
columns/current/.style={column name={Ток $I$, мА}}
]{measurements.csv}
Практические советы
Храните CSV рядом с исходником .tex
Поместите файл data.csv в ту же папку проекта, что и основной файл main.tex, чтобы компилятор сразу находил его по относительному пути.
Интеграция в Labkeeper
В онлайн-редакторе Labkeeper вы можете загрузить CSV в файловый менеджер проекта и на лету видеть отрендренную таблицу с автоматическим расчетом промежуточных сумм.