首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >循环OpenPyxl /'tuple‘对象的单元格值条件没有属性' value '/

循环OpenPyxl /'tuple‘对象的单元格值条件没有属性' value '/
EN

Stack Overflow用户
提问于 2022-07-31 17:46:50
回答 1查看 36关注 0票数 -1
代码语言:javascript
运行
复制
wb = load_workbook(example.xlsx)
ws = wb.active
for i in ws:
    if i != Date_COFTR:
        ws.append([Date_COFTR])
        wb.save(example.xlsx)

我正试图在我的excel工作表中添加一个日期(将实际日期值分配给已被the抓取并转换为一个字符串的'Date_COFTR‘变量)。上面的代码是我试图创建一个条件的尝试,只有当'Date_COFTR‘的值还没有在excel表中时,然后追加它。否则,每次运行此代码时,日期都会复制不首选的日期。变量'Date_COFTR‘每周更新一次,这就是为什么我会在网上搜索它。

当我在没有(failed)条件的情况下追加变量时,它可以工作,但正如前面提到的,它只是在每次运行脚本时复制日期。

当我尝试这样做时,我会得到错误/'tuple‘对象没有属性'value'/或者它只是没有错误地对excel工作表做任何事情。

EN

回答 1

Stack Overflow用户

发布于 2022-08-01 01:59:49

在您的代码中,'i‘将是覆盖已使用单元格列范围的工作表中的row1单元格的元组。声明

代码语言:javascript
运行
复制
if i != Date_COFTR:

将永远是真实的,因为我期望Date_COFTR是一个字符串,永远不会匹配。

您想在哪里检查“Date_COFTR”的存在?从你的线上

代码语言:javascript
运行
复制
ws.append([Date_COFTR]) 

似乎您在工作表上最后一行中的下一行中添加了“Date_COFTR”。因此,这似乎是您要检查的单元格,即A列中最后使用的行。

还是说您是要检查工作表中所有使用过的单元格?

下面的代码可能会有所帮助。

它获取要用作单元格范围的最大已使用行和列,如果您只是在查找最后一个附加项,则只能使用这一行。

代码语言:javascript
运行
复制
ws.cell(row=max_range_row, column=1).value

与Date_COFTR进行比较。

如果您正在检查所有已使用的单元格,则使用for循环。

代码语言:javascript
运行
复制
...
max_range_row = ws.max_row
max_range_col = ws.max_column

# This line will provide the value of the last ws.append cell
last_append = ws.cell(row=max_range_row, column=1).value
if last_append != Date_COFTR:
    ws.append([Date_COFTR])

# This code will get the value of each cell in the range of used cells
for row in range(1, max_range_row + 1):
    for col in range(1, max_range_col + 1):
        cell = ws.cell(row=row, column=col)
        cell_value = cell.value
        if cell_value != Date_COFTR:
            # Append Date_COFTR to sheet? see notes below
wb.save(example.xlsx)

如果检查范围内的所有单元格都是您所需要的,那么您可能不希望为每个没有Date_COFTR的单元格添加Date_COFTR,否则就会有许多附加项,所以您可以在循环结束时注意到匹配并追加一次,或者追加并退出循环。您还应该让工作簿保存最后一个语句,而不是循环的一部分(参见示例中使用的缩进),应该只需要在结束时保存一次。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73185640

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档