我一般对编程/脚本都是陌生的,只是开始了解python工作原理。无论如何,我这里有一个我一直在努力的脚本,用于在包含excel文件文本的列中随机找到一个关键字,并在另一列中打印“ word word keyword word word”。这里的单词出现在给定的文本中。
import openpyxl
path5 = "C:\\Users\\AC48330\\Desktop\\my files\\FINAL.xlsx"
wb = openpyxl.load_workbook(path5)
Sheet = wb['Sheet']
y = "you"
for i, cellObj in enumerate(Sheet['AW'], 1):
line = Sheet['AW']
words = str(line).split()
if y in words:
index = words.index(y)
before = index - min(index, 2)
after = index + min(len(words) - 1 - index, 2) + 1
print((words[before:after]), Sheet['BB'])
wb.save('finale.xlsx')
如果这看似是一个愚蠢的问题,请原谅,但我毕竟是新手:(。当我运行上述脚本时,我没有收到任何输出,也没有收到错误消息,导致我不知道自己在做什么错!
答案 0 :(得分:1)
在工作表列上使用enumerate
,然后从循环中丢弃结果是很奇怪的。
要正确获取每个单元格的值:
for i, cellObj in enumerate(Sheet['AW'], 1):
words = cellObj.value
print (words)
然后,您可以继续进行if y in words
检查每个单个单元格。
如果您真正想要的是获取AW
列中所有单元格值的列表,请改用列表理解:
words = [cellObj.value for cellObj in Sheet["AW"]]
print (words)