Python读取具有一些背景颜色的Excel工作表(xlsx)中的单元格
Posted
技术标签:
【中文标题】Python读取具有一些背景颜色的Excel工作表(xlsx)中的单元格【英文标题】:Python read cells in excel sheet (xlsx) with some background color 【发布时间】:2019-02-10 23:36:32 【问题描述】:我正在尝试阅读 excel 表 (xlsx),它使用背景颜色来区分值。
我尝试了以下库:
-
pandas,没有找到任何选项来读取基于背景颜色的单元格。
xlrd.
import xlrd
xlrd.open_workbook("filename.xlsx", formatting_info=True)
它给出的错误如下: NotImplementedError:formatting_info=True 尚未实现。
StyleFrame(如 DeepSpace 所建议的:Subsetting a dataframe based on cell color and text color in excel sheet )
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
非常感谢任何帮助我朝着正确方向前进的建议。
【问题讨论】:
您只想导入彩色单元格吗?使用 pandas 导入时遇到什么错误?您可以将其编辑到您的帖子中吗? 是的,我没有找到在 Pandas 中读取彩色单元格的任何选项。 尝试将文件转换为filename.xls
而不是xlsx
用于XLRD
Subsetting a dataframe based on cell color and text color in excel sheet 的可能重复项具体来说,请参阅我的回答中的第三个示例。
感谢@DeepSpace 的建议。它在问题中更新时给出错误。
【参考方案1】:
即使可以通过 Python 实现,最简单的方法应该是在 Excel 中按颜色进行过滤,复制该表格并将其粘贴到其他位置,然后像使用 Pandas 处理任何 Excel 文件一样将其导入。
正如DeepSpace所说,之前已经通过Python做donde,但是比较麻烦
【讨论】:
这有点超越了使用 Python 的意义,因为它是可能的,只是不使用 OP 尝试过的库 这是来自数据供应商的邮件中的 dynamin excel 表。我正在尝试@DeepSpace 建议的方式以上是关于Python读取具有一些背景颜色的Excel工作表(xlsx)中的单元格的主要内容,如果未能解决你的问题,请参考以下文章
读取包含多个表格的 excel 表格,表格的标题具有非白色背景单元格颜色
如何在 Python 中读取具有不同名称的 Excel 工作表