OpenPyXL + 如何在 Excel 单元格中搜索内容,如果内容与搜索条件匹配则更新内容?

Tel*_*der 4 python openpyxl

我正在开发一个 Python(使用 2.7)项目,通过 Excel 文件搜索正在更改的服务器的 UNC 路径,然后使用新的 UNC 路径更新单元格。我是 python 新手,我能够找到单元格并使用以下命令打印它:

def main():
    wb = load_workbook(filename = 'Book1_test.xlsx', use_iterators = True)
    ws = wb.get_sheet_by_name(name = 'Sheet1')

    for row in ws.iter_rows(): 
        for cell in row:
            print cell.value
Run Code Online (Sandbox Code Playgroud)

但是,我不知道如何使用新字符串更新单元格,并且工作簿似乎处于只读模式;可能是因为 ws 只是检索信息。
我在网上找到了很多用于搜索单元格和打印信息的资源,但没有找到关于如何在找到信息后更新单元格的资源。有很多关于如何创建带有空白单元格的新工作簿,然后更新您自己的信息的信息;另外,还介绍了如何打开现有工作表并将内容插入新单元格。我只是没有找到我想要的东西,而且我的技能还没有达到自己做这件事的水平。

这是我的目标,如果有人可以帮助我,我将不胜感激:

  1. 打开工作簿
  2. 迭代 UNC 路径的单元格;作为超链接。
  3. 写入新的 UNC 路径/公式
    注意:我只想更新引用服务器名称的链接的第一部分。例如,file:///\\enterprise\...file:///\\file-server\...
  4. 关闭工作簿

我的缺点希望有人能帮助我:

  • 我对 for 循环语法的理解不足以迭代单元格以获取非特定内容;这意味着我不知道如何在字符串中搜索单词。
  • 我应该担心捕获细胞数量/坐标吗?
  • 如果通过迭代单元格、将内容存储到变量、解析字符串并仅提取我正在查找的内容(服务器名称)来解决此问题,在新服务器名称之前和之后连接其他信息,然后更新单元格内容?

bgu*_*ach 5

.value对象的属性是Cell可设置的。这意味着您可以随时执行以下操作:

cell.value = 'Helloooo ladies'
Run Code Online (Sandbox Code Playgroud)

如果这不起作用,可能是由于优化器读取模式所致。如果需要,请检查优化的写入模式...我总是发现 openpyxl 的文档非常完整且易于遵循。

如何在单元格中查找信息,或识别您正在查找的内容是一个非常开放的问题,可以通过数千种不同的方式来解决:

  • 检查单元格的全部内容
  • 检查单元格中是否包含给定的子字符串
  • 与正则表达式匹配
  • ...

但这与openpyxl框架没有任何关系。

  • 是的,海报使用的是只读模式 `use_iterators=True`。如果您想编辑 Excel 文件,请不要使用此功能。 (2认同)