我必须使用 python 处理 Excel 工作表,以便稍后将其放入数据库中。
我的问题是,我有很多行/单元格带有striketrough。我想正常读取 Excel 并用一个或多个删除线单元格标记每一行。我刚刚找到了跳过这些行的解决方案,但我想标记它。
我确实找到了一种使用
openpyxl
打印删除线行的方法,但我想使用 pandas,因为稍后我必须添加和剪切很多列,而 pandas 最适合。
很难想象您的电子表格看起来如何,但这里有一个示例可以为您提供一般逻辑。基本上,我们使用 openpyxl
中的
Font.strikethrough
来检查单元格的字体是否被删除。
from openpyxl import load_workbook
ws = load_workbook("file.xlsx")["Sheet1"]
data = [[cell for cell in row] for row in ws.iter_rows(values_only=True)]
df = pd.DataFrame(data[1:], columns=data[0])
df["Flag"] = [
any(cell.font.strikethrough for cell in row) for row in ws.iter_rows(min_row=2)
]
输出:
print(df)
col1 col2 col3 Flag
0 foo 1 test1 True
1 bar 2 test2 False
2 qux 3 test3 True
3 baz 4 test4 False
使用的输入: