Конкурс инструкций

Создаем свой стиль таблицы в PowerPoint

В PowerPoint нельзя задать свой стиль для таблицы через интерфейс. Но поскольку файл PPTX представляет собой ZIP-архив, содержащий текст в виде XML, графику и другие данные, можно прописать этот стиль, и он станет доступен для выбора на вкладке Table Design.

Все, что вы видите на своих слайдах, прописано в XML-файлах. Цвета, шрифты, размеры, расположение объектов и т.д. Стили таблиц хранятся в файле tableStyles.xml. Его и будем править, но сперва определимся, зачем это все.

Зачем это все?

Если у меня корпоративные цвета желтый и темно-синий, это не значит, что мне нужна адская желто-синяя таблица

PowerPoint генерирует стили таблиц автоматически на основе цветовой темы шаблона. Но часто эти стили выглядят так себе: яркие цвета, жирные линии, огромные шрифты. Или же результат не соответствует гайдлайнам бренда. Можно, конечно, каждый раз создавать оформление таблицы с нуля, но гораздо круче один раз его прописать и просто выбирать в окошке со стилями.

С помощью одного стиля можно создать 4 разновидности таблицы. Вот пример из реального шаблона.

Чтобы инструкция не превратилась в лонгридище, создадим легкую для восприятия таблицу, как на картинке ниже. Не будем прописывать оформление всех линий, ячеек и границ. Достаточно понять принцип и пару нюансов XML в файлах MS Office. Для тех, кто хочет досконально разобраться, в конце есть ссылки для дальнейшего изучения.

Строка заголовка будет полужирной, чередующиеся строки/колонки можно будет отключать

Подготовка

Для правки XML-файлов презентации на Win понадобятся текстовый редактор и архиватор. Я использую 7-zip и Notepad++. Первый позволяет открыть PPTX-файл не распаковывая, а второй наглядно отображает XML-код.

Хозяйке на заметку

С 2007 года файлы PowerPoint имеют букву X на конце: *.pptx, а не *.ppt. X обозначает XML. В двух словах: презентация — это размеченный текст (как HTML), который можно править. Прелесть в том, что XML содержит больше возможностей, чем мы видим в интерфейсе PowerPoint.

Вскрываем PPTX-файл

Жмем правой кнопкой мыши на файл с презентацией, выбираем в контекстном меню Open archive. Перед нами три папки: docProps, ppt, rels и файл [Content_Types].xml. Идем в папку ppt, там открываем файл tableStyles.xml.

Этот код будем менять, чтобы задать свой стиль. Если вам удобней смотреть его целиком, скачайте tableStyles.xml и откройте в любимом редакторе.

Кстати, на MacOS достаточно BBEdit — он и файл презентации откроет и XML даст поправить.

Как устроен стиль таблицы в XML

Представим, что в оформлении таблицы есть слои.

  • Базовый слой: общее оформление таблицы
  • Чередующиеся строки и столбцы (Banded Rows and Columns)
  • Строка заголовка (Header Row) и Строга итогов (Total Row)
  • Первый столбец (First Column) и Последний столбец (Last Column)

Хотя создать свой стиль для таблицы в PP нельзя, настроить его можно. Есть целый раздел на вкладке Table Design, называется Table Style Options. Здесь вы можете выбрать отображать ли те самые Banded Rows, Banded Columns, Header Row, Total Row, First Column и Last Column. Базовый слой отвечает за вид таблицы, когда все эти галочки сняты.

1. Базовый слой

Каждому параметру таблицы — свой тег

Файл tableStyles.xml начинается с версии XML, кодировки, а также названия стиля. Назовем таблицу «Selectel Style».

<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <a:tblStyleLst xmlns:a="http://schemas.openxmlformats.org/drawingml/2006/main" def="{0817EA92-75D0-4044-A80A-286907CE0DDB}"> <a:tblStyle styleId="{0817EA92-75D0-4044-A80A-286907CE0DDB}" styleName="Selectel Style">

Внутри <a:tcTxStyle> задаем параметры текста. Тэг <a:fontRef idx="minor"> означает, что используется шрифт из темы презентации. Цвет текста задаем в <a:prstClr val="black"/>. В нашем случае это черный из стандартной палитры Office. Если цвет нужно задать в HEX, то тэг немного другой: <a:srgbClr val="000000"/>.

<a:wholeTbl> <a:tcTxStyle> <a:fontRef idx="minor"> <a:prstClr val="black"/> </a:fontRef> <a:schemeClr val="dk1"/> </a:tcTxStyle>

Дальше настраиваем левую, правую, верхнюю и нижнюю линии рамки: <a:left>, <a:right>, <a:top>, </a:bottom> внутри <a:tcStyle>. Например, нам не нужны левая и правая линии рамки вообще, поэтому мы ставим w="0" внутри тэга <a:ln w="0" cmpd="sng">. То есть толщину делаем равной нулю. А вот верхнюю и нижнюю рамки мы делаем толщиной 14000. Цвет у всех линий будет "D9D9D9", его проставляем в <a:srgbClr val="D9D9D9"/>.

<a:tcStyle> <a:tcBdr> <a:left> <a:ln w="0" cmpd="sng"> <a:solidFill> <a:srgbClr val="D9D9D9"/> </a:solidFill> </a:ln> </a:left> <a:right> <a:ln w="0" cmpd="sng"> <a:solidFill> <a:srgbClr val="D9D9D9"/> </a:solidFill> </a:ln> </a:right> <a:top> <a:ln w="14000" cmpd="sng"> <a:solidFill> <a:srgbClr val="D9D9D9"/> </a:solidFill> </a:ln> </a:top> <a:bottom> <a:ln w="14000" cmpd="sng"> <a:solidFill> <a:srgbClr val="D9D9D9"/> </a:solidFill> </a:ln> </a:bottom>

Хозяйке на заметку

В Office Open XML используются нетипичные единицы измерения: English Metric Unit (EMU). Насколько я понял, это некая калькуляция, позволяющая увязывать между собой пиксели, сантиметры и дюймы. Я не программист и не математик, поэтому ловите ссылку, где компетентный человек все разъясняет. Если вкратце, то 1 дюйм = 914400 EMU, 1 мм = 36000 EMU.

Делаем внутренние линии между строками в два раза тоньше рамочных. Внутри тега <a:insideH> пишем <a:ln w="7000" cmpd="sng">. Вертикальные нам не нужны, поэтому у них w=«0».

<a:insideH> <a:ln w="7000" cmpd="sng"> <a:solidFill> <a:srgbClr val="D9D9D9"/> </a:solidFill> </a:ln> </a:insideH> <a:insideV> <a:ln w="0" cmpd="sng"> <a:solidFill> <a:srgbClr val="D9D9D9"/> </a:solidFill> </a:ln> </a:insideV> </a:tcBdr>

Тэг <a:fill> отвечает за цвет заливки всей таблицы. На этом базовый слой закончен.

<a:fill> <a:solidFill> <a:srgbClr val="FFFFFF"/> </a:solidFill> </a:fill> </a:tcStyle> </a:wholeTbl>

2. Чередующиеся столбцы и строки

Зададим цвет для чередующихся столбцов и строк, когда они отмечены галочками. Нечетный столбец — это <a:band1V>, четный – <a:band2V>. Со строками аналогично.

<a:band1H> <a:tcStyle> <a:tcBdr/> <a:fill> <a:solidFill> <a:srgbClr val="F2F2F2"/> </a:solidFill> </a:fill> </a:tcStyle> </a:band1H> <a:band2H> <a:tcStyle> <a:tcBdr/> <a:fill> <a:solidFill> <a:srgbClr val="FFFFFF"/> </a:solidFill> </a:fill> </a:tcStyle> </a:band2H> <a:band1V> <a:tcStyle> <a:tcBdr/> <a:fill> <a:solidFill> <a:srgbClr val="FFFFFF"/> </a:solidFill> </a:fill> </a:tcStyle> </a:band1V> <a:band2V> <a:tcStyle> <a:tcBdr/> <a:fill> <a:solidFill> <a:srgbClr val="F2F2F2"/> </a:solidFill> </a:fill> </a:tcStyle> </a:band2V>

3. Строка заголовка (Header Row) и Строга итогов (Total Row)

Делаем Строку заголовка полужирной через b="on" в <a:tcTxStyle b="on">.

<a:firstRow> <a:tcTxStyle b="on"> <a:fontRef idx="minor"> <a:prstClr val="black"/> </a:fontRef> </a:tcTxStyle> <a:tcStyle> <a:tcBdr> <a:top> <a:ln w="14000" cmpd="sng"> <a:solidFill> <a:srgbClr val="D9D9D9"/> </a:solidFill> </a:ln> </a:top> </a:tcBdr> <a:fill> <a:solidFill> <a:srgbClr val="FFFFFF"/> </a:solidFill> </a:fill> </a:tcStyle> </a:firstRow>

И так далее. Строку итогов, Первый и последний столбцы также можно настроить на свой вкус, но расписывать это излишне – принцип везде один и тот же: каждому атрибуту свой тэг.

Настройка размера шрифта

Вернемся в папку ppt. Перейдем оттуда в папку slideMasters и откроем файл slideMaster1.xml. Почти в самом конце находим тэг <p:otherStyle> и меняем в нем атрибут sz на необходимый "1800" kern="1200">. Чтобы шрифт в таблице был 12 пт, sz должен быть равен 1200.

<p:otherStyle> <a:defPPr> <a:defRPr lang="en-RU" /> </a:defPPr> <a:lvl1pPr marL="0" algn="l" defTabSz="914400" rtl="0" eaLnBrk="1" latinLnBrk="0" hangingPunct="1"> <a:defRPr sz="1800" kern="1200">

Резюме

  • PPTX-файл – это ZIP-архив с файлами XML и графикой
  • Правка XML файлов позволяет делать с презентацией то, для чего нет кнопки в интерфейсе
  • Размер шрифта таблицы задается в файле slideMaster1.xml, а все остальное в tableStyles.xml
  • Проще собрать троллейбус из буханки, чем задать свой стиль для таблицы в PP, но если что, я всегда рад помочь, обращайтесь

Ссылки

P.S. Еще с помощью правки XML можно блокировать объекты на слайде, добавлять дополнительные цвета в палитру и чинить сломанные ссылки на диаграммы, но об этом как-нибудь в другой раз.

0
9 комментариев
Написать комментарий...
Георгий Москалёв

Отличная статья! Я нашел другой способ быстро делать презентации: в Фигме задал стили шрифтов, элементов, компонентов и тп. и теперь только там создаю слайды. Получается в разы быстрее и проще, единственное, что приходится конвертировать в растр, прежде чем загружать в Power Point, но если он не нужен, тогда все отлично экcпортируется в PDF из Figma. 

Ответить
Развернуть ветку
Vladimir Pletyukhin

Отличный способ. Главное, чтобы все в команде (или заказчик) умели рабоать в ней, если придется редактировать

Ответить
Развернуть ветку
Георгий Москалёв

Там в целом механика очень похожа на Power Point. Так что может и мне написать статью про презентации в Фигме🤔

Ответить
Развернуть ветку
Влад. Бугаев (pptxman)
Автор

Напишите! У меня до Фигмы никак руки не доходят, поскольку в основном в PP работаю, но слышу о ней постоянно. Особенно интересует автоматизация и шаблонирование, чтобы каждый раз не подгонять размеры, отступы и проч.

Ответить
Развернуть ветку
Георгий Москалёв

Ну все, назад дороги нет! :) 

Ответить
Развернуть ветку
Ника Алекс

Спасибо за статью! Возможно я пропустила этот момент: скажите а стиль который вы прописали задается только для одной презентации или его можно потом использовать везде и на других презах? 

Ответить
Развернуть ветку
Влад. Бугаев (pptxman)
Автор

Стили остаются внутри того файла куда прописаны. Можно либо вставить таблицу как картинку, либо скопировать XML.

Ответить
Развернуть ветку
Ника Алекс

Благодарю за ответ! 
Жаль, я думала это может решить вопрос с таблицами для всех однотипных през для всей команды. А так сложно получается для тиражирования способа.  

Ответить
Развернуть ветку
Вячеслав Воронин

Когда нажал Save и закрыл код, то стиль не появился в презентации.Подскажите в чем дело и как поступить? (после сохранения PPT также закрыл и заново открыл)

Ответить
Развернуть ветку
6 комментариев
Раскрывать всегда