Python无法读取excel复选标记

2024-03-28 14:31:34 发布

您现在位置:Python中文网/ 问答频道 /正文

我只需要做的是读取一些xlsx文件,并删除其中包含复选标记的每一行。所以我试着:

df = pd.read_excel("file.xlsx")
df = df[~df['Locked'].isin([stringlist])] # got several different check marks in stringlist

遗憾的是,当我尝试下面的代码时,我注意到上面的代码无法读取复选标记

df = pd.read_excel("file.xlsx")

print (df)

    Users:    Locked:

    user1     NaN
    user2     NaN

在xlsx文件的Locked列中,有一个user2检查。但是,pandas看不到它,仍然使用“NaN”值加载所有数据帧。我的问题是,我能解决这个问题吗?在xlsx文件中,检查的是小图像。我真的不需要像tick character那样加载图像,我只需要以某种方式读取它们,这样我就可以告诉python,如果locked处的单元格不是“NaN”,就删除该行


Tags: 文件代码标记图像dfreadnanxlsx
1条回答
网友
1楼 · 发布于 2024-03-28 14:31:34

我通过在主代码中添加该代码找到了解决方案:

import win32com.client
x=win32com.client.Dispatch("Excel.Application")
wb=x.Workbooks.Open("<path_to.xlsx>")
ws=wb.Sheets("Sheet1")
for i in ws.Shapes:
    print i.TopLeftCell.Address

上述代码的结果是:

$B$2

这让我知道我在哪个细胞里得到了图像。在此之后,我将这些内容保存在列表中,然后使用以下内容删除单元格:

for n in cell_list:
    a = n[3:]
    df = df.drop([a])

请注意,上面的代码无法识别图像是什么。在我的例子中,我只得到了锁定中的复选标记(从win32com识别为$B),所以这对我来说很好

相关问题 更多 >