如何使用 OpenPyxl 确定 Excel 工作表中的行是否被删除

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

我正在使用 openpyxl 读取 excel 文件,但遇到以下问题:

有些单元格在 Excel 中似乎被删除,并且它们的单元格删除属性为 True,我成功使用 Openpyxl 处理它们

但有些单元格在Excel中似乎被删除,但格式单元格删除属性为False。 这是因为设置了 row Strike 属性。

我的问题是我无法使用 OpenPyxl 成功访问行的 Strike 属性

    sheet = book[sheet_name]
    for row in sheet[0:sheet.max_row]:
        if sheet.row_dimensions[row[0].row].font.strike:
            break

尽管有些行被删除,但我的代码永远不会中断

同样奇怪的是,当我查看工作表的 row_dimensions 时,我没有看到每行的条目,而只是某些行的条目,而且我没有看到被删除的行的任何条目。 我不明白根据什么标准,有些行有相应的 row_dimensions 而有些则没有

您知道如何进行或对此有想法吗?

python excel openpyxl
1个回答
0
投票

使用此输入:

下面的代码似乎有效:

from openpyxl import Workbook

book = load_workbook(filename='Book 1.xlsx')
sheet = book['Sheet1']

for row_id, row in sheet.row_dimensions.items():
    if row.font.strike:
        print(f'{row_id}: strike row')

for row in sheet.iter_rows():
    for cell in row:
        cell_id = f'{cell.column_letter}{cell.row}'
        if cell.font.strike:
            print(f'{cell_id}: strike cell')

输出:

1: strike row
A1: strike cell
B1: strike cell
C1: strike cell
D1: strike cell
B2: strike cell
D2: strike cell
© www.soinside.com 2019 - 2024. All rights reserved.