当前位置: 首页 > 面试题库 >

OpenPyXL +如何在Excel的单元格中搜索内容,如果内容符合搜索条件,则更新内容?

邢心水
2023-03-14
问题内容

我正在使用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

但是,我不知道如何用新的字符串更新单元格,并且工作簿似乎处于只读模式。可能是因为ws仅在获取信息。
我在网上找到了很多资源来搜索单元格和打印信息,但是没有找到有关信息后如何更新单元格的资源。关于如何用空白单元格创建新工作簿,然后更新自己的信息,有很多信息。此外,有关如何打开现有工作表并将内容插入新单元格的信息。我只是找不到我要找的东西,而我自己的技能还不存在。

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

  1. 打开工作簿
  2. 遍历单元格以获取UNC路径;作为超链接。
  3. 编写新的UNC路径/公式
    注意 :我只想更新引用服务器名称的链接的第一部分。例如, file:/// \\ enterprise \ … 将是 file:///
    \\ file-server \…。

  4. 关闭工作簿

缺点我希望有人可以帮助我:

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

问题答案:

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

cell.value = 'Helloooo ladies'

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

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

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

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



 类似资料:
  • 问题内容: 如何在目录/子目录中搜索PDF文件的内容?我正在寻找一些命令行工具。似乎无法搜索PDF文件。 问题答案: 您的发行版应提供一个名为的实用程序: 要使pdftotext输出到stdout,而不是文件,必须使用“-”。在和选项将在grep的输出把文件名。可选标志不错,它告诉grep使用终端上的颜色进行输出。 (在Ubuntu中,由或提供。) 这种方法,使用和,拥有一个优势,如果你想使用GN

  • 问题内容: 我想在内容中使用redis搜索,这样可能吗? 例如 : 我使用c#和BookSleeve,如果帖子的“已删除”属性为false,我想在帖子的“内容”属性中搜索一个单词,我可以使用HSET并序列化此对象以存储在redis或SADD或…中。 1-存储该对象的最佳方法是什么?2-搜索和筛选对象以退货的最佳方法是什么? [更新] 我可以使用SISMEMBER在redis中搜索确切的单词或短语,

  • 我有一个预定义的excel文件,这是一种形式,其中大部分的信息已经提到,但我必须只输入姓名,地址等细节从我的应用程序用Java。 我可以存储单元格(如A12、B20等),并使用Apache POI库和方法轻松地更新这些单元格。但我希望它是动态的。例如,如果用户将名称单元格从A12更改为B12,Java代码不应该被修改。

  • 当列名未知时,如何循环遍历整个数据框以删除包含特定字符串的单元格中的数据? 以下是我目前掌握的情况: 我的数据: 如果一个单元格包含一个字符串,例如“找到”,我如何删除它的全部内容?我想删除单元格中的所有内容(包括字符串之前和之后。)

  • 问题内容: 我需要在数据库中所有例程的例程正文(存储过程,函数,触发器)中搜索文本。 谢谢 问题答案: 不要 使用INFORMATION_SCHEMA或sys.comments …它们在1或更多行上使用nvarchar(4000),这意味着某些搜索将失败

  • 我是python新手,正在尝试用python制作一个小程序。我的要求:我有一个这样的列表:假期=['2018年1月1日'、'2018年1月26日'、'2018年3月2日'、'2018年3月30日'] 现在,我想在dataframe中搜索与我的列表匹配的日期,如“2018年1月26日”,并想将搜索结果保存在单独的数据框中。 我找不到合适的方法来做这件事。请建议