2015-03-25 60 views
0

我有以下代码可以打印Excel文件中的所有项目。我想要做的是输入一个名称,然后在电子表格中搜索该名称,并在列D中显示相应名称的价格。名称列在列A中。我在电子表格中的列是(列A :玩家,列B:团队,列C:点,列D:成本,列E:职位)。使用OPENPYXL从EXCEL文件中提取数据

我想要做的是搜索玩家名称并打印此玩家的价格。

from openpyxl import load_workbook 

print ("Going to execute the script") 

workbook = load_workbook("LeaguePlayers.xlsx", use_iterators = True) 

name = print(input("Enter player name: ")) 

for worksheet in workbook: 
    for row in worksheet.iter_rows(): 
     for cell in row: 
      if(cell.value != None): 
       print (cell.value)   

print ("End of script execution") 
+0

什么实际问题?在处理非常大的文件时,您只需要使用只读模式。 – 2015-03-25 16:05:37

+0

我有一个Excel文件,其中包含玩家姓名和各种属性,例如鲁尼,曼联,前锋,126英镑,12.6英镑。成本在E列中。我可以从Excel文件中提取所有信息,就像您从上面看到的一样。我想要做的只是输入玩家的名字,例如鲁尼,它应该从Excel文件中的列E拉动球员的价格并显示它。 – Moridiin 2015-03-25 17:04:31

回答

0

那么,你可以做这样的事情:

player = raw_input("Enter player name") 
wb = load_workbook("LeaguePlayers.xlsx") 
ws = wb.active 
for cell in ws.columns[0]: # get first column 
    if cell.value == player: 
     cost = cell.offset(column=4).value 
     print("{0} costs {1}".format(player, cost)) 
     break 
+0

嗨,感谢您的建议,我可以看到代码正在做什么,但是在中断之后它会抛出无效的语法错误 – Moridiin 2015-03-25 18:12:35

+0

它是一种伪代码,可让您了解如何解决问题。你也可以使用'ws.iter_rows(max_col = 1)'。取决于数据集的大小。 – 2015-03-25 18:41:17

+0

错误是由于2.2中已知的(并且是固定的)错误造成的。使用'pip install openpyxl == 2.1.5'直到2.2.1发布。 – 2015-03-25 18:44:31

相关问题