Python xlwings excel 长度 table

Python xlwings excel length of table

我正在努力使我在 Excel 中的一些工作自动化。我正在尝试做的很大一部分工作是比较一些数据以确定是否需要将其添加到某种系统中。

我目前正在苦苦挣扎的一点是在 Excel sheet 中查找行的长度。通过 Excel sheet 提供的数据可能非常长,我认为如果我让 Python 抓住其中的所有内容,我认为这是草率的编码。

我环顾四周,发现了一些使用 Range().vertical 的建议,但 xlwings 中似乎没有了。

我发现的一个解决方法是读取完整的sheet,循环它直到我找到一个包含int "None"的单元格,然后停止循环,但这仍然感觉很“非python-ish).

例如。对于我正在使用的数据

    A     B
    1 data1  stuff9
    2 data9  stuff4
    3 data3  stuff3
    4 data4  stuff2
    5

我想知道的是 A 列有多少行数据。在这个例子中我应该找到 4(尽可能优雅)

使用方法 current_region 和大小,current_Region 返回“1”,大小返回“1048576”(我认为 excel 的最大值,所以它只是继续计数 ;)) 结束方法也是如此。

我刚刚安装了 xlwings 并花了 5 分钟查看文档,并为您提供了两个选项:

import xlwings as xw
app = xw.apps[0]
book = app.books[0]
sheet = book.sheets[0]
rng = sheet.range('A1')

# This gives the last row in the TABLE'S current_region
# This will take additional columns in to consideration
rng.current_region.end('down').row

# This gives the last row in column A
rng.end('down').row

根据你的示例数据,两种方法都会产生4的结果,但你应该注意差异,例如如果B列中的数据更多,则第一种方法不适合识别A 列中的 "last row",它将始终 return 整个 current_region 对象的最后一行。