Python:如何将单元格填充更改为“无”并将边框更改为“无”

6
我有一个Excel文档,我想要在两个工作表“Table”和“Test”上删除格式(任何单元格颜色/边框)。
我已经查看了PatternFill的所有文档,但我只看到如何应用颜色/格式,而不是如何将它们重置为null。
如果您能提供任何帮助/建议,将不胜感激。
谢谢
2个回答

16

为了不让单元格显示颜色,需要创建一个带有参数fill_type=NonePatternFill对象。下面是一个用于清除现有Excel工作簿中所有单元格颜色和边框的代码片段:

import openpyxl

# Load workbook
wb = openpyxl.load_workbook('workbook.xlsx')

# Initialize formatting styles
no_fill = openpyxl.styles.PatternFill(fill_type=None)
side = openpyxl.styles.Side(border_style=None)
no_border = openpyxl.styles.borders.Border(
    left=side, 
    right=side, 
    top=side, 
    bottom=side,
)

# Loop through all cells in all worksheets
for sheet in wb.worksheets:
    for row in sheet:
        for cell in row:
            # Apply colorless and borderless styles
            cell.fill = no_fill
            cell.border = no_border

# Save workbook
wb.save('workbook_modified.xlsx')

嘿Xukaro,感谢回复。我明白你的意思;PatternFill对象需要先创建,然后应用于每个单元格。我以为会有一种VBA风格的方法可以在工作表级别而不是单个单元格级别上执行它。 - Steve Wolfe

0

最简单的解决方案:

cell.value = None
cell.border = None # Border() more recommended
cell.fill = PatternFill()

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接