Можно ли создать вертикальную черту в таблице с помощью openpyxl?
Я использую Python для создания xlsx
файлы с openpyxl
пакет. Я создал простую таблицу и хочу разделить столбцы вертикальной чертой. Вопрос: Как создать вертикальную черту через openpyxl
?
1 ответ
Решение
Вопрос: Как создать вертикальную черту через openpyxl?
Вы можете использовать стиль border
или же fill
,
OpenPyXL Работа со стилями
Стили используются для изменения внешнего вида ваших данных при отображении на экране. Они также используются для определения форматирования чисел.
Например:
from openpyxl import Workbook
wb = Workbook()
ws = wb.worksheets[0]
data = [['A1', '', 'C1', '', 'E1'], ['A2', '', 'C2', '', 'E2'], ['A3', '', 'C3', '', 'E3'], ['A4', '', 'C4', '', 'E4']]
for row, rData in enumerate(data, 1):
ws.append(rData)
from openpyxl.styles import Side, Border, PatternFill, Color
thin = Side(border_style="thin", color="000000")
thin_white = Side(border_style="thin", color="FFFFFF")
border = Border(left=thin)
fill = PatternFill("solid", fgColor="666666")
from openpyxl.utils import range_boundaries
ws.column_dimensions['B'].width = 1
ws.column_dimensions['D'].width = 0.5
min_col, min_row, max_col, max_row = range_boundaries('B1:D4')
B = 0; D = 2
for row_cells in ws.iter_rows(min_col=min_col, min_row=min_row,
max_col=max_col, max_row=max_row):
row_cells[B].border = border
row_cells[D].fill = fill
row_cells[D].border = Border(left=thin_white, right=thin_white)
wb.save('../test/test.xlsx')
Протестировано с Python: 3.4.2 - openpyxl: 2.4.1 - LibreOffice: 4.3.3.2