Python xlwings excel长度表

时间:2016-12-13 18:57:34

标签: python excel xlwings

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

我正在努力解决的问题是在Excel工作表中查找行的长度。通过Excel工作表提供的数据可能非常长,如果我想让Python抓住所有内容并且其中包含所有内容,我认为这是邋coding的编码。

我已经环顾了一下并找到了一些使用Range().vertical的建议,但它似乎不再出现在xlwings中了。

我发现一个解决方法是读取完成表,循环它直到我发现一个单元格包含“无”,然后停止循环,但这仍然感觉很“非python-ish”。

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

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

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

使用current_region和size的方法,current_Region给我回“1”,size给我回“1048576”(我认为excel的最大值,所以它只是继续计数;))和end-method相同

1 个答案:

答案 0 :(得分:2)

我刚刚安装了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中包含更多数据,那么第一种方法不适合识别& #34;最后一行"在A列中,它将始终返回整个current_region对象的最后一行。