Python使用一些背景颜色读取Excel工作表(xlsx)中的单元格

时间:2018-09-05 18:46:13

标签: excel python-3.x pandas xlrd

我正在尝试阅读Excel表格(xlsx),该表格使用背景色来区分值。

我尝试了以下库:

  1. 熊猫,找不到任何读取基于背景颜色的单元格的选项。
  2. xlrd。

    import xlrd
    xlrd.open_workbook("filename.xlsx", formatting_info=True)
    

它给出错误为: NotImplementedError:formatting_info = True尚未实现。

  1. StyleFrame(由DeepSpace建议:在Excel工作表中根据单元格颜色和文本颜色设置数据框 )

    from StyleFrame import StyleFrame, utils
    sf = StyleFrame.read_excel('filename.xlsx', read_style=True, use_openpyxl_styles=False)
    

它给出错误为:

Traceback (most recent call last):
File "proj_path/read_excel.py", line 22, in <module>
sf = StyleFrame.read_excel('filename.xlsx', read_style=True, use_openpyxl_styles=False)
File "C:\Anaconda\lib\site-packages\StyleFrame\deprecations.py", line 22, in inner
return func(*args, **kwargs)
File "C:\Anaconda\lib\site-packages\StyleFrame\style_frame.py", line 220, in read_excel
_read_style()
File "C:\Anaconda\lib\site-packages\StyleFrame\style_frame.py", line 209, in _read_style
read_comments and current_cell.comment)
File "C:\Anaconda\lib\site-packages\StyleFrame\styler.py", line 127, in from_openpyxl_style
font_color = theme_colors[openpyxl_style.font.color.theme]
TypeError: list indices must be integers or slices, not Integer

任何能帮助我朝正确方向发展的建议都将受到高度赞赏。

1 个答案:

答案 0 :(得分:0)

即使通过Python可能实现,最简单的方法应该是在Excel中通过Color进行过滤,复制该Table并将其粘贴到其他位置,然后像使用任何带有Pandas的Excel文件一样将其导入。

如DeepSpace所评论,它以前是通过Python编写的,但这很麻烦