在python中导入excel文件并识别内容被删除的单元格

Posted

技术标签:

【中文标题】在python中导入excel文件并识别内容被删除的单元格【英文标题】:Import excel file in python and identify cells of which the content is strikethrough 【发布时间】:2017-02-21 08:27:07 【问题描述】:

我想阅读许多 Excel 文档,并且我想至少收到一份关于格式的重要信息。但是,我怕没有工具,所以我的希望在你身上!

我正在读取的每个 excel 文件都包含一些内容被删除的单元格。对于不认识这个词的人(我也不认识),删除线表示内容中有一条横线。

我发现我需要使用 xlrd 阅读我的文档才能识别字体。但是,我一直在查看可能的列表,但没有一个包含删除线检查。

【问题讨论】:

自己创建一个包含两个单元格的文件,一个只是文本,第二个是带有删除线的相同文本。用 xlrd 读取两者并进行比较。 试试Font.struck_out pythonhosted.org/xlrd3/font.html(太短了,无法回答) @Alex 我将不得不为 59 个带有多张工作表的 excel 文件做这件事,所以我不想手动做一些事情。 @JReid 我试过了,但它不起作用。 它必须是那个或擒纵机构。最有可能出现奇怪的剔除。 【参考方案1】:

您必须使用formatting_info kwarg 作为True 打开工作簿。然后,获取单元格的theXF 对象并获取Font 对象。 struck_out 属性是您正在寻找的。一个例子:

workbook = xlrd.open_workbook(filename, formatting_info=True)
sh = workbook.sheet_by_name(sheet)
xf = workbook.xf_list[sh.cell_xf_index(row, col)]
font = workbook.font_list[xf.font_index]
if font.struck_out:
    print(row, col)

【讨论】:

【参考方案2】:
from openpyxl import load_workbook
book = load_workbook('xyz.xlsx')
sheet = book.get_sheet_names()[0] #This will consider **Sheet1** of our excel file
ws = book.get_sheet_by_name(sheet)
for row in ws.iter_rows():
    for cell in row:
        if cell.font.strike:
            print(cell.value)

【讨论】:

以上是关于在python中导入excel文件并识别内容被删除的单元格的主要内容,如果未能解决你的问题,请参考以下文章

python从Microsoft Excel文件中导入数据

python 使用Mac在Pandas(Python)中导入Excel文件

我已经在 python 中导入了一个 excel 文件,我正在尝试将第 7 行作为起始列。我需要隐藏前 6 行我该怎么做? [复制]

如何在 Python 中导入 COM 对象命名空间/枚举?

在 python 中导入 Excel

vba如何新建一个excel并且从另一个excel中导入数据到这个新建的excel中?