当前位置:  开发笔记 > 编程语言 > 正文

使用Openpyxl将边界应用于单元格区域

如何解决《使用Openpyxl将边界应用于单元格区域》经验,为你挑选了1个好方法。



1> Yaroslav Adm..:

首先调用style(非styles)和border(不borders)属性.另外要更改边框,您应该cell.border直接设置.

除了你有一些边界逻辑的问题,由于迭代器和角落,使它正常工作更复杂.这是一个粗略的版本(它很简单,我可以得到它,但不是内存效率):

def set_border(ws, cell_range):
    rows = ws[cell_range]
    side = Side(border_, color="FF000000")

    rows = list(rows)  # we convert iterator to list for simplicity, but it's not memory efficient solution
    max_y = len(rows) - 1  # index of the last row
    for pos_y, cells in enumerate(rows):
        max_x = len(cells) - 1  # index of the last cell
        for pos_x, cell in enumerate(cells):
            border = Border(
                left=cell.border.left,
                right=cell.border.right,
                top=cell.border.top,
                bottom=cell.border.bottom
            )
            if pos_x == 0:
                border.left = side
            if pos_x == max_x:
                border.right = side
            if pos_y == 0:
                border.top = side
            if pos_y == max_y:
                border.bottom = side

            # set new border only if it's one of the edge cells
            if pos_x == 0 or pos_x == max_x or pos_y == 0 or pos_y == max_y:
                cell.border = border

推荐阅读
手机用户2502851955
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有