使用 openpyxl 为行和列添加边框

Adding borders to rows and columns with openpyxl

如何使用 openpyxl 为整行和整列添加边框?

我试过了:

import openpyxl
from openpyxl.styles import borders
from openpyxl.styles.borders import Border

wb = openpyxl.Workbook()
ws = wb.active

border1 = borders.Side(style = None, color = Color(indexed = 0), border_style = 'thin')
border0 = borders.Side(style = None, color = None, border_style = None)
thin = Border(left = border1, right = border0, bottom = border0, top = border 0)

ws.column['C'].border = thin

然后我收到错误:

Worksheet object has no attribute column

是否可以将边框分配给整个 row/column 还是我需要将它一个一个地应用到单元格?

这里是一个示例,说明如何遍历单元格以将边框应用到每个单元格。 min_col = 3 和 max_col = 3 导致列 'C' 并且使用 max_row 你可以设置你想要边框的行。

import openpyxl
from openpyxl.styles import borders
from openpyxl.styles.borders import Border

wb = openpyxl.load_workbook('border.xlsx')
ws = wb.active

border1 = borders.Side(style = None, color = 'FF000000', border_style = 'thin')
border0 = borders.Side(style = None, color = None, border_style = None)
thin = Border(left = border1, right = border0, bottom = border0, top = border0)

for row in ws.iter_rows(min_row=1, min_col=3, max_row=20, max_col=3):
    for cell in row:
        cell.border = thin
        
wb.save('border_new.xlsx')