我正在处理一组excel文件,并且试图从excel电子表格中的列表中查找某些值。
最后,我想找到在Excel电子表格中找到的指定值的匹配数。我写了一些应该执行此操作的代码,但是我遇到了逻辑错误。
尽管我认为它或多或少是方法调用的本质,而不是我。我想知道是否在Excel处理程序中找到了所有解决方案,或者如果需要,我必须自己做一个吗?
请参见下面的代码:
我尝试过的事情
*排序从我也尝试比较的列中返回的列表。
* xlwings中的find()方法<-这是我的问题,它找到了它们,但不是全部。
*我在可以找到的方面进行了大量研究,发现了此链接https://www.vitoshacademy.com/how-to-search-in-a-worksheet-with-python/ 这是我有想法尝试使用find()方法的地方。
我尝试了其他一些方法,但是我意识到它们不能满足我在其他测试用例中的最终目标。我认为做我想做的唯一确定的方法是在处理程序的帮助下找到所有匹配的值。
#Counts the number of items in the sheet that match the keys in the Dict
def countItemsInSheet(self, aDict):
keyValues = self.getKeys(aDict)
count = 0
each = 0
for i in range(len(keyValues)):
try:
if keyValues[i] in self.searchSheet(keyValues[i]):
count += 1
aDict.update({keyValues[i]:count})
except:
count = 0
return aDict
#Searches the sheet for a value
def searchSheet(self,value):
wb = xw.Book(MONTH_STAT)
sheet = self.getFirstSheet()
shtObj = wb.sheets[sheet]
myCell = shtObj.api.UsedRange.Find(value)
return myCell.value
这是我的关键值的不正确计数 输出:
InspectionResults_Out_ 1
Hideo_out_ 0
ProdOrderNonConforming_Out_ 1
LOIPRO.LOIPRO02.ZLOIPRO2 2
LOIPRO.LOIPRO02.ZLOIPRO1 0
ProdOrdUpdate_Out_ 1
INVCON.INVCON02.ZINVCON02 2
ProdOrdConf_Out_ 3
期望的输出: 与我的不良输出相同,但计数准确。
我怀疑,如果我能一目了然地找到所有列表值,那么我将能够获得正确的值