Перейти к основному содержимому

Добавление границ к ячейкам Excel с помощью Apache POI

· 2 мин. чтения

1. Обзор

В этом руководстве мы узнаем, как добавить границы на лист Excel с помощью Java-библиотеки Apache POI .

Для получения дополнительных основ работы с Excel мы можем начать с работы с Microsoft Excel в Java .

2. Границы Excel

Мы можем создать границы для ячейки Excel или для диапазона ячеек. Эти границы могут быть в различных стилях . Некоторые примеры стилей включают толстые линии, тонкие линии, средние линии, пунктирные линии. Чтобы добавить больше разнообразия, у нас могут быть цветные границы .

На этом изображении показаны некоторые из этих границ разнообразия:

./9de19078e4727d2b242e59ca3c648ce8.png

  • Ячейка B2 с толстой линией границы
  • Ячейка D2 с широкой фиолетовой каймой
  • Ячейка F2 с сумасшедшей рамкой, каждая сторона границы имеет свой стиль и цвет.
  • Диапазон B4:F6 с рамкой среднего размера
  • Регион B8:F9 имеет оранжевую окантовку среднего размера .

3. Кодирование границ Excel

Библиотека POI Apache предоставляет несколько способов обработки границ. Один из простых способов — обратиться к диапазонам ячеек и применить границы.

3.1. Диапазоны ячеек или регионы

Чтобы обратиться к диапазону ячеек, мы можем использовать класс CellRangeAddress :

CellRangeAddress region = new CellRangeAddress(7, 8, 1, 5);

Конструктор CellRangeAddress принимает четыре параметра: первая строка, последняя строка, первый столбец и последний столбец. Каждый индекс строки и столбца начинается с нуля. В приведенном выше коде это относится к диапазону ячеек B8:F9 .

Мы также можем обратиться к одной ячейке, используя класс CellRangeAddress :

CellRangeAddress region = new CellRangeAddress(1, 1, 5, 5);

Приведенный выше код относится к ячейке F2 .

3.2. Границы ячеек

Каждая граница имеет четыре стороны: верхнюю, нижнюю, левую и правую границы. Мы должны установить стиль каждой стороны границы отдельно . Класс BorderStyle предоставляет множество стилей.

Мы можем установить границы, используя класс RangeUtil :

RegionUtil.setBorderTop(BorderStyle.DASH_DOT, region, sheet);
RegionUtil.setBorderBottom(BorderStyle.DOUBLE, region, sheet);
RegionUtil.setBorderLeft(BorderStyle.DOTTED, region, sheet);
RegionUtil.setBorderRight(BorderStyle.SLANTED_DASH_DOT, region, sheet);

3.3. Цвета границы

Цвета границ также должны быть установлены отдельно для каждой стороны. Класс IndexedColors предоставляет диапазон используемых цветов.

Мы можем установить цвета границ, используя класс RangeUtil :

RegionUtil.setTopBorderColor(IndexedColors.RED.index, region, sheet);
RegionUtil.setBottomBorderColor(IndexedColors.GREEN.index, region, sheet);
RegionUtil.setLeftBorderColor(IndexedColors.BLUE.index, region, sheet);
RegionUtil.setRightBorderColor(IndexedColors.VIOLET.index, region, sheet);

4. Вывод

В этой короткой статье мы увидели, как создавать различные границы ячеек, используя классы CellRangeAddress , RegionUtil , BorderStyles и IndexedColors . Каждая сторона границы должна быть установлена отдельно.

Как обычно, код и тесты доступны на GitHub .