如何在 Openpyxl 中为一系列动态单元格/动态表格制作轮廓边框?

问题描述 投票:0回答:1

如何使用Openpyxl制作轮廓边框? Openpyxl 没有将轮廓边框应用于一系列动态单元格或动态表格的功能,如下图所示:

python openpyxl
1个回答
0
投票

我设法使用此处提供的链接找出答案:https://groups.google.com/g/openpyxl-users/c/R9QQ8yfowfc

下面的代码将轮廓边框应用于 Openpyxl 中的动态单元格范围:

def add_outline_border(sheet, start_row, start_col, end_row, end_col):
    borderTop = Border(top = Side(style = 'thick'))
    borderBottom = Border(bottom = Side(style = 'thick'))
    borderLeft = Border(left = Side(style = 'thick'))                
    borderRight = Border(right = Side(style = 'thick')) 
    borderTopLeft = Border(left = Side(style = 'thick'), top=Side(style='thick'))
    borderTopRight = Border(right = Side(style = 'thick'), top=Side(style='thick'))
    borderBottomLeft = Border(left = Side(style = 'thick'), bottom = Side(style = 'thick'))
    borderBottomRight = Border(right = Side(style = 'thick'), bottom = Side(style = 'thick'))
    
    for row in range(start_row, end_row + 1):
        for col in range(start_col, end_col + 1):
            sheet.cell(start_row, col).border = borderTop
            sheet.cell(end_row, col).border = borderBottom
            sheet.cell(row, start_col).border = borderLeft
            sheet.cell(row, end_col).border = borderRight

    sheet.cell(start_row, start_col).border = borderTopLeft
    sheet.cell(start_row, end_col).border = borderTopRight
    sheet.cell(end_row, start_col).border = borderBottomLeft
    sheet.cell(end_row, end_col).border = borderBottomRight
    return sheet

然后调用该函数,如下所示:

sheet = add_outline_border(sheet, 2, 2, sheet.max_row, sheet.max_column)

© www.soinside.com 2019 - 2024. All rights reserved.