只读具有值的 Excel 单元格 python win32com

2023-12-31

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

num value1 value2

1       A      100
2       B      
3       c      300

我想迭代value2对于值超过 200 的值,如果发现值超过 200,则打印value1。我遇到的最大问题是告诉它在到达包含文本的单元格末尾时停止 for 循环。

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

while columnA is not empty:
     if value2 > 200:
           print (value1)

一些注意事项:我使用的是 win32com。ColumnA我的数据集中永远不会是空白。预先感谢您提供的任何帮助!

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


考虑使用 Excel 的对象库,特别是它的范围对象 https://msdn.microsoft.com/en-us/library/office/ff838238.aspx or Worksheet.Cells 属性 https://msdn.microsoft.com/en-us/library/office/ff194567.aspx。此外,通常在 Excel VBA 中,您搜索工作表以查找最后一行,然后循环直到到达它:

Excel 工作表

Python COM 代码 (使用try/ except/finally总是释放资源,无论错误与否)

import win32com.client as win32

try:
    f = "myWorkbook.xlsx"
    xl = win32.gencache.EnsureDispatch('Excel.Application')
    wb = xl.Workbooks.Open(f)
    ws = wb.Worksheets(1)

    xlUp = -4162
    lastrow = ws.Cells(ws.Rows.Count, "A").End(xlUp).Row + 1

    for i in range(2,lastrow):
        # LOOP RANGE OBJ
        if ws.Range("C" + str(i)).Value is not None and ws.Range("C" + str(i)).Value > 200:
            print(ws.Range("B" + str(i)).Value)

        # LOOP CELLS OBJ
        if ws.Cells(i,3).Value is not None and ws.Cells(i,3).Value > 200:
            print(ws.Cells(i,2).Value)

    wb.Close(False)
    xl.Quit

except Exception as e:
    print(e)

finally:
    ws = None
    wb = None
    xl = None

Output

c
c
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

只读具有值的 Excel 单元格 python win32com 的相关文章

随机推荐

  • 富文本 (YUI) 编辑器在 IE11 上损坏

    我正在运行 Internet Explorer 11 和 YUI 2 富文本编辑器似乎无法正常工作 有关更多详细信息 请参阅随附的屏幕截图 有什么想法如何在 IE11 下解决这个问题吗 由于IE改变了它的User Agent YUI 2 9
  • Android Studio 初始化“com.intellij.util.net.ssl.CertificateManager”时发生致命错误

    当我将Android Studio 3 0升级到3 1时出现这个问题 java lang RuntimeException com intellij ide plugins PluginManager StartupAbortedExcep
  • 使用 Python 检测 C 文件中的递归

    我需要检测相当大 5 15 000 的 C 不是 C 文件集中的直接和间接递归 文件已经过预处理 出于安全原因 该代码相当 老派 因此没有诸如函数指针之类的奇特东西 只有传递变量的函数和一些执行相同操作的函数宏 检测递归的最自然的方法是创建
  • 实体框架-“不允许新事务,因为会话中还有其他线程正在运行”

    我在尝试保存实体框架中的更改时收到以下错误 System Data SqlClient SqlException 不允许新事务 因为会话中还有其他线程正在运行 我已经看到了这个问题的各种答案 但我似乎无法让它们中的任何一个工作 基本上我在存
  • 增加 Azure Api 应用程序中的最大请求长度

    我创建了一个 Azure Api 应用程序 将用它来上传文件 这些文件将 gt 4mb 因此需要增加最大请求长度 我已将以下内容添加到 Web config
  • 取消 UNNotificationRequest

    Because UILocalNotification现已弃用 我将代码移至新版本UNNotificationRequest API 它指出 取消本地通知 在 iOS 10 0 中已弃用 使用 UserNotifications Frame
  • 缺少 git 提交

    在工作中 这种情况经常发生 有人不小心将一些东西提交到 master 而不是预期的功能分支 然后这个人尝试解决它 结果却突然消失了 我进行了仔细的搜索 但找不到任何文档来解释为什么会发生这种情况 或者如何纠正这种情况 以下是重现步骤 git
  • 尽管有有效的 SSH 密钥,仍无法将 git 存储库推送到 Heroku

    有很多堆栈文章引用了与我收到的相同的错误消息 我在另一台计算机上浏览了整个 heroku 设置文档 一切都运行良好 不知道为什么这个不起作用 但我需要它 当我跑步时 gt git push v heroku master Pushing t
  • 在 Html.ActionLink 中添加图像

    我试图创建一个选项来在 ASP net MVC 带有剃刀视图引擎 中的列表视图和小部件视图之间切换 但是 我在尝试添加图像并将其缩放到 正确的高度 与其旁边的高度相同 时遇到了一些麻烦 我一直在寻找创建类似的东西 期望的结果 List Vi
  • IIS7 中的“经典”和“集成”管道模式有什么区别?

    昨晚我正在部署一个 ASP NET MVC 应用程序 发现将 IIS7 设置为集成模式进行部署会减少工作量 我的问题是有什么区别 使用其中一种或另一种会有什么影响 经典模式 IIS6及以下版本中的唯一模式 是IIS仅直接与ISAPI扩展和I
  • R包中的源文件

    我正在构建一个非常基本的 R 包供我自己使用 有些文件需要另一个文件中的函数 因此 R 文件尝试获取 R 文件 这在构建过程中失败 两者都不 source util R nor source util R 工作 R 找不到该文件 所有文件都
  • 无法在 Android Nougat 通知的小图标中使用黄色

    我在 Android 7 x 中将通知小图标设置为黄色时遇到问题 我在用着notification setColor Color YELLOW 在构建通知对象时 它显示橄榄色而不是黄色 也尝试过使用notification setColor
  • RxJava 的后备 Observable

    我正在寻找一种更好的方法来实现使用 RxJava 时针对空结果的简单 Observable 后备系统 这个想法是 如果对一组数据的本地查询导致零项 则应该进行回退查询 可能是网络调用或其他查询 目前 我的代码包含以下内容 Observabl
  • WCF XML 结构 - 如何删除包装器节点?

    我在使用 List 对象时遇到问题 DataContract public class Recipe DataMember Name Allergies public List
  • AttributeError:类型对象“MyUser”没有属性“USERNAME_FIELD”

    我正在 django 中构建一个自定义 User 类 用于创建注册应用程序 每次尝试 makemigrations 时 我都会收到上述错误 据我所知 我的代码是根据 django 文档here https docs djangoprojec
  • 对 socket.io 使用 http 和 https

    我正在努力使socket io两者都工作http and https连接 但根据我当前的配置 它似乎只能在其中之一上工作 使用以下配置选项 它可以通过以下方式访问我的应用程序https 但是当尝试通过访问它时http它无法连接并且我收到错误
  • 反转字符串中单词的顺序

    我正在准备初级工作面试 我试图反转字符串中单词的顺序 但我的输出是一堆毫无意义的垃圾 我认为问题可能是因为我在函数中使用 char 无论如何 这是我的代码 include
  • .NET 4.8 中的异步等待递归导致 StackoverflowException(.Net Core 3.1 中没有!)

    为什么下面的代码在 Net4 8中只有17深度递归会导致StackOverflowException 然而 这在 NetCore 3 1 中不会发生 我可以将计数设置为 10 000 它仍然有效 class Program static a
  • 为什么除了“goog.inherits()”之外还需要“goog.base(this)”?

    在这段涉及构造函数的 Google Closure javascript 代码片段中 为什么是goog base this 必要的 没有Foo已经从 Disposable 继承goog inherits foo goog Disposabl
  • 只读具有值的 Excel 单元格 python win32com

    我有一个如下所示的 Excel 文档 num value1 value2 1 A 100 2 B 3 c 300 我想迭代value2对于值超过 200 的值 如果发现值超过 200 则打印value1 我遇到的最大问题是告诉它在到达包含文