我要做的是搜索某个范围内的值,然后打印存在这些值的Excel行。
类似的东西:
for cell in xl.ActiveSheet.Range('A1:A30'):
if val in cell:
#Print rows in which that value appears
这似乎应该非常简单,但我在思考如何做到这一点时遇到了一些困难。我们非常感谢任何帮助。
答案 0 :(得分:0)
可能像
import win32com.client.dynamic
from pythoncom import CoInitialize, CoUninitialize
CoInitialize()
xlApp = win32com.client.dynamic.Dispatch('Excel.Application')
xlBook = xlApp.Workbooks.Open(filename)
def access_range(sheet, row1, col1, row2, col2):
"return a 2d array (i.e. tuple of tuples)"
sht = xlBook.Worksheets(sheet)
return sht.Range(sht.Cells(row1, col1), sht.Cells(row2, col2))
def get_range(sheet, row1, col1, row2, col2):
return access_range(sheet, row1, col1, row2, col2).Value
for column, data in enumerate(get_range(1, 1, 1, 10, 10)):
for row, value in enumerate(data):
if value == search_value:
print "value found in column %s, row %s" % (chr(65+column), row+1)
CoUninitialize()
注意:第一个工作表,列和行是1(不是0)
答案 1 :(得分:0)
根据user2682863的回答,我最终做的是以下内容:
for row, cell in enumerate(self.xl.ActiveSheet.Range('A:A')):
if val == cell:
row = row + 1
print row, cell
这似乎有效,因为我要查找的值将始终位于活动工作表的A列中。