在Excel文档中搜索值以返回其行

时间:2015-05-16 21:49:57

标签: python excel openpyxl

我正在使用python为大学的组织创建一个简单的实用程序。 python脚本将在excel文档中搜索名称,然后使用该名称的行值将返回有关其搜索的成员的信息。

我正在使用openpyxl来执行此操作。我已阅读文档并了解读取单元格和工作表等,包括来自一系列单元格,行或列。

我不确定如何使用它在第一列中搜索名称。

我正在考虑使用:

name = raw_input('insert name > ')

然后遍历第一列中的单元格以搜索name,然后使用字符串操作来获取该单元格的行值。

然而,查看我无法找到的文档实际上找到了搜索单元格内容的方法。

对我来说,有什么可以解决这个问题吗?

2 个答案:

答案 0 :(得分:2)

您可以将xslx或csv上传到python,然后进行搜索和操作,然后将数据以csv或xslx的形式保存回现有文件或新文件。这是单词频率分析的示例。

#Note DO not Read/Write to the same files over and over make new ones`


from collections import Counter
import xlrd
import xlwt
book = xlrd.open_workbook('/Users/galon/Desktop/cleanmqlresulty5.xlsx')
sheet = book.sheet_by_name('cleanmqlresulty5')
csv = sheet.col_values(0)
#print((len(csv)))
csvlist = []
for i in range(len(csv)):
    csvlist = csvlist + (csv[i].split())
#print(csvlist)
counts = Counter(csvlist)

key = []
value = []
for k,v in counts.items():
         key.append(k)
         value.append(v)


import csv
csvfile = "/Users/galon/Desktop/001.csv"

#Assuming output is a flat list
with open(csvfile, "w") as output:
    writer = csv.writer(output, lineterminator='\n')
    for val in key:
        writer.writerow([val])

import csv
csvfile = "/Users/galon/Desktop/002.csv"

#Assuming output is a flat list
with open(csvfile, "w") as output:
    writer = csv.writer(output, lineterminator='\n')
    for val in value:
        writer.writerow([val])

答案 1 :(得分:0)

文档中没有任何内容,因为库中没有这样的功能。每个单元存储数据,因此循环遍历所有单元(按行)是解决问题的唯一方法。