值为python win32com的只读Excel单元格

值为python win32com的只读Excel单元格,python,excel,win32com,Python,Excel,Win32com,我有一个Excel文档,如下所示 num value1 value2 1 A 100 2 B 3 c 300 对于值超过200的内容,我想遍历value2,如果发现值超过200,则打印value1。我遇到的最大问题是告诉它一旦到达包含文本的单元格末尾,就停止for循环 理想情况下,我的循环是这样的: while columnA is not empty: if value2 > 200:

我有一个Excel文档,如下所示

num value1 value2

1       A      100
2       B      
3       c      300
对于值超过200的内容,我想遍历
value2
,如果发现值超过200,则打印
value1
。我遇到的最大问题是告诉它一旦到达包含文本的单元格末尾,就停止for循环

理想情况下,我的循环是这样的:

while columnA is not empty:
     if value2 > 200:
           print (value1)
注意:我正在使用win32com<代码>列A在我的数据集中永远不会为空。提前感谢您提供的任何帮助


编辑:每个文档的行数并不总是相同的。我需要它自动停止。很抱歉没有说得更清楚

我不确定您是如何解析excel文件的,但是如果您使用的是xlrd模块,我认为类似的方法可能会奏效

    workbook = xlrd.open_workbook('read_file.xlsx')

    worksheet = workbook.sheet_by_index(0)

    for i in range(1,4):
        if worksheet.cell(i, 2).value > 200:
            print worksheet.cell(i,1)

对于循环范围,我想您可以指定行数,但我现在不记得了。

考虑使用Excel的对象库,特别是其or。此外,通常在Excel VBA中,搜索工作表以查找最后一行,然后循环直到找到它:

Excel工作表

Python COM代码(使用try/except/finally总是释放资源,不管是否出错)

输出

c
c

你是解析XLS、XLSX还是混合格式?你会考虑使用<代码>熊猫> /Cord>库吗?不幸的是,我必须使用Wi32 com库。我将只使用XLSX请发布您尝试的实际“”代码,但这不意味着我将始终需要知道行数吗?谢谢!这对我帮助很大。“lastrow”代码正是我想要的。谁能解释一下神奇的数字xlUp=-4162?不管怎样,这也帮助了我,+1。@EmilioMBumachar,见。
c
c