C excel выравнивание в ячейке

Обновлено: 05.07.2024

Нередко приходится сталкиваться с ситуацией, когда нужно отформатировать xls-документ непосредственно в коде. В этой статье хотелось привести несколько примеров форматирования данных. Итак, начнем.

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

  1. Выделение всего текста в ячейке
  • Data.Range(CellHL; CellBR). Font.Bold = True // жирным
  • Data.Range(CellHL; CellBR).Font.Italic = True // курсивом
  • Data.Range(CellHL; CellBR). Font.Underline = True //подчеркиванием
  1. Выделение определенного слова в тексте ячейки
  1. Объединение ячеек
  1. Установка размера шрифта
  1. Установка цвета текста
  1. Горизонтальное выравнивание ячейки

Режим выравнивания

Константа в Excel

Значение в ISBL

По центру выделения

По правому краю

Режим выравнивания

Константа в Excel

Значение в ISBL

По нижнему краю

По верхнему краю

Значения константы XlBordersIndex:

Расположение линии

Значение в Excel

Константа в ISBL

Линия по диагонали сверху – вниз

Линия по диагонали снизу – вверх

Линия, обрамляющая диапазон слева

Линия, обрамляющая диапазон сверху

Линия, обрамляющая диапазон снизу

Линия, обрамляющая диапазон справа

Все вертикальные линии внутри диапазона

Все горизонтальные линии внутри диапазона

Свойство LineStyle (тип линии) может принимать значения:

Тип линии

Значение в Excel

Константа в ISBL

(_._._._._) В виде тире и точек

(_.._.._..) В виде тире и двойных точек

(=====) В виде двойной линии

(/././././) В виде наклонной пунктирной

Значения константы XlBorderWeight

Толщина линии

Значение в Excel

Константа в ISBL

  1. Установка отметки напротив пункта "переносить по словам"
  1. Отключение/включение режима показа предупреждений
  1. Сохранение книги вpdf формат
  • 0 - значение Microsoft.Office.Interop.Excel.XlFixedFormatType, указывающее, сохранять книгу в формате PDF;
  • Filename - полный путь к новому файлу формата PDF;
  • 1 - значение Microsoft.Office.Interop.Excel.XlFixedFormatQuality, определяющее качество экспортируемого файла;
  • IncludeDocProperties - значение true, чтобы включить свойства документа в новый экспортированный файл; в противном случае — значение false;
  • IgnorePrintAreas - значение true, чтобы пропускать области печати, установленные при экспорте; в противном случае — false.
  1. Построениесводнойтаблицы

// Вставка сводной таблицы

  • 1 - значение константы xlPivotTableSourceType;
  • SourceData – данные для нового сводной таблицы (диапазон ячеек);
  • TableDestination - диапазон на листе, где будет помещена итоговая Сводная таблица
  • TableName - имя новой Сводной таблицы

где NameColumn – название колонки, которое совпадает с именем колонки в шапке таблицы с листа исходных данных.

Значения констант параметра Функции:

0 – сумма; 1 – количество; 2 – среднее; 3 – максимум; 4 – минимум.

  1. Вставка гиперссылки на запись справочника в ячейку

В дальнейшем планирую написать аналогичную статью для MS Word.

Спасибо, очень полезная статейка!

Отличная статья. Добавлю еще несколько примеров, которые использовали сами.

Ваш браузер не поддерживает видео.

Если необходимо изменить внешний вид данных в ячейке, можно менять угол наклона шрифта или выравнивание текста.

Изменение ориентации текста в надписи

Выделите ячейку, строку, столбец или диапазон.

Вы можете повернуть текст вверх, вниз, по часовой стрелке или против часовой стрелки, а также выровнять его по вертикали.

Строка текста, повернутая под разными углами.

Поворот текста на точный угол

Выделите ячейку, строку, столбец или диапазон.

В разделе Ориентация справа в поле Градусов используйте стрелку вверх или вниз, чтобы установить точное количество градусов, на которое вы хотите повернуть выбранный текст ячейки.

Положительные числа поворачивают текст вверх. Отрицательные — вниз.

Выравнивание столбца или строки

Для начала выберите ячейку или ячейки, которые нужно выровнять. Текст можно выровнять по одной ячейке, диапазону ячеек, строке или строкам, столбцу или столбцам или по всей рабочей книге. (Чтобы выделить все ячейки, нажмите CTRL+A.)

Выделите ячейки, содержимое которых нужно выровнять.

На вкладке Главная в группе Выравнивание выберите параметр выравнивания по горизонтали:

Кнопка "Выровнять по левому краю"

Выровнять по левому краю

Кнопка "Выровнять по центру"

Выровнять по центру

Выровнять по правому краю

На вкладке Главная в группе Выравнивание выберите выравнивание по вертикали:

Кнопка "Выровнять по верхнему"

Выровнять по верхнему

Кнопка "Выровнять по середине"

Выровнять по середине

Кнопка "Выровнять по нижнему"

Выровнять по нижнему

Поворот текста

Приносим свои извинения. В Excel в Интернете не предусмотрены параметры ориентации шрифта, позволяющие использовать вертикальные шрифты или поворачивать шрифты под углом.

Чтобы известить нас о желательности наличия этой функции в Excel в Интернете, перейдите в поле предложений Visio и нажмите кнопку Проголосовать.

Если у вас есть классическое приложение Excel, можно открыть книгу в нем и применить вращение текста.

Выравнивание текста

Параметры выравнивания определяют размещение текста в ячейке на горизонтальной и вертикальной осях.

Выделите ячейку, строку, столбец или диапазон.

На вкладке Главная в группе Выравнивание выберитевариант выравнивания:

Кнопка "Выровнять по верхнему"

Выровнять по верхнему

Кнопка "Выровнять по середине"

Выровнять по середине

Кнопка "Выровнять по нижнему"

Выровнять по нижнему

Кнопка "Выровнять по левому краю"

Выровнять по левому краю

Кнопка "Выровнять по центру"

Выровнять по центру

Выровнять по правому краю

Увеличение отступа текста

Вы можете ввести отступ в текст или отменить отступ.

Выделите ячейку, строку, столбец или диапазон.

На вкладке Главная в группе Выравнивание выберите вариант отступа:

Кнопка "Увеличить отступ"

Увеличить отступ : текст сдвигается вправо.

Кнопка "Уменьшить отступ"

Уменьшить отступ : текст сдвигается влево

Если необходимо изменить внешний вид данных в ячейке, можно менять угол наклона шрифта или выравнивание текста.

Изменение ориентации текста в надписи

Выделите ячейку, строку, столбец или диапазон.

Вы можете повернуть текст вверх, вниз, по часовой стрелке или против часовой стрелки, а также выровнять его по вертикали.

Строка текста, повернутая под разными углами.

Поворот текста на точный угол

Выделите ячейку, строку, столбец или диапазон.

В разделе Ориентация справа в поле Градусов используйте стрелку вверх или вниз, чтобы установить точное количество градусов, на которое вы хотите повернуть выбранный текст ячейки.

Положительные числа поворачивают текст вверх. Отрицательные — вниз.

Выравнивание столбца или строки

Для начала выберите ячейку или ячейки, которые нужно выровнять. Текст можно выровнять по одной ячейке, диапазону ячеек, строке или строкам, столбцу или столбцам или по всей рабочей книге. (Чтобы выделить все ячейки, нажмите ⌘+A.)

Выделите ячейки, содержимое которых нужно выровнять.

На вкладке Главная выберите выравнивание по горизонтали:

Кнопка "Выровнять по левому краю"

Выровнять по левому краю

Кнопка "Выровнять по центру"

Выровнять по центру

Выровнять по правому краю

На вкладке Главная выберите выравнивание по вертикали:

Кнопка "Выровнять по верхнему"

Выровнять по верхнему

Кнопка "Выровнять по середине"

Выровнять по середине

Кнопка "Выровнять по нижнему"

Выровнять по нижнему

Дополнительные сведения

Вы всегда можете задать вопрос специалисту Excel Tech Community или попросить помощи в сообществе Answers community.

В современном мире разработки приложений нередко встает необходимость работы с Excel документами. Чаще всего это разного рода отчеты, но иногда xls/x файлы используются в качестве хранилища данных. Например, если пользователь должен иметь возможность загрузить данные в приложение или выгрузить, в человеко-читаемом виде, Excel де-факто является стандартом. Относительно дружелюбный интерфейс, прозрачная структура, в купе с его распространенностью. трудно навскидку назвать решение лучше.

Историческая справка

Времена, когда доминировал проприетарный формат .xls(Excel Binary File Format) давно прошли и сейчас мы имеем только .xlsx(Excel Workbook), в рамках Office Open XML. Последний представляет собой обычный .zip архив с XML файлами. Не будем углубляться в его структуру, я искренне надеюсь что вам это никогда не понадобится.

На github, и не только, можно найти ряд библиотек, бесплатных и не только. Пожалуй самой популярной является EPPlus. До определенной степени, она довольно хорошо отражает концепцию Excel, именно по этому я всегда использую EPPlus. Версия 4 полностью бесплатна, начиная с 5‐й версии вам потребуется приобрести лицензию для коммерческого использования.

Задача

Итак, предположим, продукт-мэнеджеру ударила в голову идея того, что возможность выгружать некий отчет в формате Excel увеличит кол-во пользователей на 100500%. Проджет-менеджер решает выкатить эту киллер-фичу как хотфикс прямо сегодня — ведь работы всего на пару часов.

Сам по себе, отчет содержит краткое описание компании и историю изменения некоторых экономических показателей. Для простоты все свойства компании — строки. Экономические показатели — большие целые числа и числа с плавающей точкой, а также даты. Предположим, что где-то в недрах микросервисного backend-да есть сервис-генератор подобных отчетов, например по id компании. Однако, поскольку id нет смысла выводить пользователю, идентификатор отсутствует в самой модели отчета.

Аналитик, в свою очередь, выдает задачу с феноменально точным описанием - "Сгенерировать excel отчет на базе данных MarketReport". Что ж, для нашего примера, создадим заглушку — генератор фейковых данных:


Первый запуск

Подключим EPPlus версии 4.5.3.3 и создадим базовую обвязку для будущего генератора.

Сердцем генератора будет метод Generate. ExcelPackage это модель документа, через которую мы и будем осуществлять все взаимодействия с ним. Также имеется конструктор для передачи пути к файлу или потока.

В методе main создается генератор отчетов, а также генератор Excel файлов. Далее полученный файл просто записывается на диск.

При попытке запустить приложение, получаем exception: InvalidOperationException: The workbook must contain at least one worksheet

Все правильно, Excel документ не может существовать без страниц, должна быть хотя бы одна. Добавляем ее, все интуитивно понятно:

Запускаем снова и. вот оно! Теперь наше приложение генерирует документ и, хотя там еще ничего нет, он уже весит 2,5KB - значит мы работаем с Excel правильно и все идет как надо.

Вывод данных

Давайте выведем основную информацию по компании в шапку. Для доступа к конкретной ячейки объект Cells на странице пакета снабжен удобным индексатором. При этом, до конкретной ячейки можно достучаться как через номер строки и столбца, так и по привычному всем буквенно-числовому коду:

Полный код вывода шапки.

Для вывода исторических данных понадобится как минимум шапка таблицы и цикл по массиву History:

Предлагаю обратить внимание на метод LoadFromArrays, который заполняет диапазон ячеек рваным(зубчатым) массивом. Здесь мы можем видеть, что типизация теряется и передавая массив object мы ожидаем что EPPlus в конечном итоге использует ToString, чтобы записать переданное в ячейки.

Стилизация

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

Как это выглядит


Во-первых, шапка никак не выделяется, во-вторых таблица не имеет границ. выравнивание пляшет, даты отображаются магическими числами, а капитализация "уходит в какую-то математику" - как это прокомментировал аналитик.

Да, на все эти красивости у нас уйдет больше года кода, чем на сам вывод данных, и, в конечном тоге, получившаяся каша из логики вывода данных и разметки заставит некоторых усомниться в их компетентности. но, мы же backend разработчики, так давайте сверстаем Excel Sheet!

Размер ячеек

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

Если вы когда-нибудь до этого открывали Excel, то возможно знаете, что ширина ячеек не может отличаться в рамках столбца и автофит будет по самому широкому контенту ячейки. Однако, простые вещи бывает нетак то просто объяснить. Но если вы справитесь, то вот как это будет выглядеть в коде:

Формат данных

Как и большая часть стиля ячейки, он задается через одноименное свойство Style. Обратите внимание на вычисление 3-го аргумента индексатора. Это звоночек некачественного кода, но к этому мы вернемся в позже.

Выравнивание

Его можно задать как на ячейке, так и на диапазоне. На самом деле, для EPPlus, это одна и та же сущность — некий ExcelRange, описывающий диапазон ячеек, в том числе и со всего 1 ячейкой.

Стиль текста

Также легко задается, используя Style.Font, кстати, здесь, на 2-й строчке, мы впервые указываем диапазон так, как привыкли его видеть пользователи Excel:

Границы

Задаем стиль линии, а также ее толщину. К этому моменту от кол-ва магических чисел-параметров индексатора уже рябит в глазах, но мы уже на финишной прямой. не так ли?

График

"Ну что за отчет без графиков, верно, Карл?" - ловко подметит специалист по тестированию, и не важно, что этого не было в ТЗ а на часах уже половина 9-го.

Хотя график как сущность сам по себе сложнее таблиц и с графиками мы не работаем каждый день, EPPlus предоставляет довольно понятный API. Давайте добавим простейший график, отражающий рост капитализации:

Еще, может понадобиться защитить страницу от редактирования:

На этом все, репозиторий с рабочим приложением находится здесь.

Заключение

Во-первых, прежде всего, о том, что мы успешно справились с задачей, а именно, сгенерировали свой первый Excel отчет, поработали со стилями и даже решили пару попутных проблем.

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

Если вы работаете в представлении "Разметка страницы"(вкладка "Вид", группа "Представления книги", кнопка "Разметка страницы"), вы можете указать ширину столбца или высоту строки в сантиметрах, сантиметрах и миллиметрах. Единица измерения по умолчанию находится в сантиметрах. Перейдите в > параметры > дополнительных > отображения > выберите параметр из списка "Единицы линейки". Если переключиться в обычный режим, то ширина столбцов и высота строк будут отображаться в пунктах.

У отдельных строк и столбцов может быть только один параметр. Например, один столбец может иметь ширину 25 пунктов, но ширина столбца не должна быть 25 точек для одной строки и 10 пунктов для другой.

Установка заданной ширины столбца

Выберите столбец или столбцы, ширину которых требуется изменить.

На вкладке Главная в группе Ячейки нажмите кнопку Формат.

На вкладке "Главная" нажмите кнопку "Формат"

В разделе Размер ячейки выберите пункт Ширина столбца.

Введите значение в поле Ширина столбцов.

Совет: Чтобы быстро установить ширину одного столбца, щелкните его правой кнопкой мыши, выберите "Ширина столбца", введите нужное значение и нажмите кнопку "ОК".

Автоматическое изменение ширины столбца в соответствии с содержимым ячеек (автоподбор)

Выберите столбец или столбцы, ширину которых требуется изменить.

На вкладке Главная в группе Ячейки нажмите кнопку Формат.

На вкладке "Главная" нажмите кнопку "Формат"

В разделе Размер ячейки выберите пункт Автоподбор ширины столбца.

Примечание: Чтобы быстро подобрать ширину всех столбцов листа, нажмите кнопку Выделить все и дважды щелкните любую границу между заголовками двух столбцов.

Кнопка Выбрать все

Изменение ширины столбца в соответствии с шириной другого столбца

Выделите ячейку, которая имеет нужную ширину.

Нажмите сочетание клавиш CTRL+C или на вкладке Главная в группе Буфер обмена нажмите кнопку Копировать.

На вкладке "Главная" нажмите кнопку "Копировать".

Изменение ширины по умолчанию для всех столбцов листа или книги

Значение ширины столбца по умолчанию указывает приблизительное количество символов стандартного шрифта, которое умещается в ячейке. Можно указать другое значение ширины столбца по умолчанию для листа или книги.

Выполните одно из указанных ниже действий.

Чтобы изменить ширину столбца по умолчанию для листа, щелкните ярлычок листа.

Чтобы изменить ширину столбца по умолчанию для всей книги, щелкните правой кнопкой мыши ярлычок какого-либо листа, а затем выберите пункт Выделить все листы в контекстное менюTE000127572.

Щелкните ярлычок листа

На вкладке Главная в группе Ячейки нажмите кнопку Формат.

На вкладке "Главная" нажмите кнопку "Формат"

В разделе Размер ячейки выберите пункт Ширина по умолчанию.

В поле Ширина столбца введите новое значение, а затем нажмите кнопку ОК.

Советы: Если требуется определить новое значение ширины столбцов по умолчанию для всех новых книг и листов, можно создать новые шаблоны книги или листа и создавать новые книги и листы на основе этих шаблонов. Дополнительные сведения см. по следующим ссылкам:

Читайте также: