首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >使用python操作excel电子表格

使用python操作excel电子表格
EN

Stack Overflow用户
提问于 2018-06-12 05:17:14
回答 2查看 821关注 0票数 1

我刚接触Python,尤其是在Excel中使用Python的时候。我需要编写代码来搜索字符串“Mac”,“Asus”,“AlienWare”,“Sony”,或“Gigabit”,在一个更长的字符串中搜索A列的每个单元格,根据它在A列的单元格的整个条目中找到的这些字符串中的哪些,它应该将这5个字符串中的一个写入到C列的单元格的相应行。否则,如果它没有找到五个中的任何一个,它会将“Other”写到列C中的相应行。例如,如果A2列的单元格包含字符串“ProLiant Asus DL980 G7”,则正确的代码将把“Asus”写到列C2的单元格。它应该对列A中的每个单元格执行此操作,将适当的字符串写入到列C中的相应单元格。列A中的每个单元格都将包含五个字符串之一: Mac、Asus、AlienWare、Sony或Gigabit。如果它不包含这些字符串中的一个,我希望第3列中相应的单元格写入字符串“Other”。到目前为止,这是我拥有的代码(根本不多):

import openpyxl
wb = openpyxl.load_workbook(path)
sheet = wb.active
    for i in range (sheet.max_row):
    cell1 = sheet.cell (row = i, column = 1)
    cell2 = sheet.cell (row = I, column = 3)

# missing code here

wb.save(path)
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-06-12 05:41:08

您还没有尝试编写任何代码来解决该问题。您可能希望首先让openpyxl写入excel工作簿,并验证它是否正常工作-即使它是虚拟数据。这个页面看起来很有帮助- here

一旦成功,您所需要的就是一个简单的函数,该函数接受一个字符串作为参数。

def get_column_c_value(string_from_column_a):
     if "Lenovo" in string_from_column_a:
          return "Lenovo"
     else if "HP" in string_from_column_a:
          return "HP"
     # strings you need to check for here in the same format as above
     else return "other"

试一试,如果你有任何问题,请告诉我你在哪里卡住了。

票数 1
EN

Stack Overflow用户

发布于 2018-06-12 05:36:00

我没怎么用过openpyxl,但听起来你是想做一个简单的字符串搜索。

您可以使用以下命令访问单个单元

cell1.internal_value

然后,if/else语句将如下所示

if "HP" in str(cell1.internal_value):

数据可以直接分配给单元格,因此您可以

ws['C' + str(i)] = "HP"

您可以对单元格中的所有数据执行此操作

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

https://stackoverflow.com/questions/50806165

复制
相关文章

相似问题

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