1. Обзор
В этом руководстве мы узнаем, как добавить границы на лист Excel с помощью Java-библиотеки Apache POI .
Для получения дополнительных основ работы с Excel мы можем начать с работы с Microsoft Excel в Java .
2. Границы Excel
Мы можем создать границы для ячейки Excel или для диапазона ячеек. Эти границы могут быть в различных стилях . Некоторые примеры стилей включают толстые линии, тонкие линии, средние линии, пунктирные линии. Чтобы добавить больше разнообразия, у нас могут быть цветные границы .
На этом изображении показаны некоторые из этих границ разнообразия:
- Ячейка
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 .