【问题标题】:Reading large excel tables (guessing size)读取大型excel表格(猜测大小)
【发布时间】:2011-11-25 03:46:16
【问题描述】:

我正在使用 pywin32 读写 excel。现在我知道的唯一方法是访问 Range.Value 但是,我通常事先不知道完整 Excel 表的大小。 所以目前我逐行阅读,直到找到一个完全空的行。这可能会很慢。

当然,我会尝试读取数据块之类的技巧 - 然后我必须找到最佳块大小。

您知道另一种方法(可能是一些内部 excel 函数)或其他更快的方法吗?

【问题讨论】:

    标签: python excel vba com pywin32


    【解决方案1】:

    您可以使用xlrd 打开工作簿并读取特定工作表的大小。它相当快。

    提示:book = xlrd.open_workbook("myfile.xls") 然后您通过sheet = book.sheet_by_index(sheetx)sheet = book.sheet_by_name(sheet_name) 获得Sheet 对象,并且您拥有sheet.nrows 属性,其中包含给定工作表中的行数。

    这是API 文档。

    【讨论】:

      【解决方案2】:

      在VBA中,我们经常使用End这样的语句:

      Worksheets("sheet1").Cells(Rows.Count, "A").End(xlUp).Row
      

      这可能会帮助您找到列的最后使用的单元格(但是,我不知道如何将此方法扩展到pywin

      【讨论】:

      • 谢谢。这可能会奏效。顺便说一句,在 pywin 中都是一样的 - 可能以某种方式映射:)
      【解决方案3】:

      使用Worksheet.UsedRange 属性获取整个范围怎么样?

      【讨论】:

      • 有趣。它像最大填充行吗?如果我的工作表上只有一张表,它可能会起作用:)
      • @Gerenuk:当您想选择工作表中的所有内容时,它很有用。如果您有许多表,则范围将包括所有表。
      猜你喜欢
      • 2023-03-29
      • 2015-09-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-06-07
      • 2018-03-31
      • 2020-04-09
      • 2013-02-26
      相关资源
      最近更新 更多