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

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

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

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

【问题讨论】:

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

标签: python excel fonts strikethrough


【解决方案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)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-09-30
      • 2014-10-13
      • 1970-01-01
      • 1970-01-01
      • 2021-09-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多