在Excel工作表中查找填充内容的范围

3

我有一个名为 Book.xlsm 的 Excel 2016 文件。在工作表 testsheet 中,A1:Y150 范围内的单元格填充了文本或数字内容。左上角的单元格始终为 A1

我正在使用 Python v3 xlwings 打开这个 Excel 文件。

import xlwings as xw
Book_name = 'C:/Users/name/Book.xlsm'
sheet_name = 'testsheet'
wb = xw.Book(Book_name)
sht = wb.sheets[sheet_name]

我该如何使用Python找出填有内容的单元格范围,本例中为A1:Y150?

2个回答

4

您可以使用 used_range 获取包含内容的范围:

import xlwings as xw

filename = "test.xlsx"

wb = xw.Book(filename)
ws = wb.sheets["SheetX"]
a_range = ws.used_range.address
print(a_range)

1
如果定义了wb为Excel工作簿,则这是一个不错的方法: print (wb.sheets[sheet_name].api.UsedRange.Address)

我遇到了错误 AttributeError: 'Sheet' object has no attribute 'UsedRange'。请问您的代码是使用vba还是python xlwings? - user1315789
1
@user1315789 - VBA可以访问和操作Excel对象,Python也可以。Excel不是开源的,因此在Python/Java/C++库中应该能找到相应的功能(至少我是这样理解的)。 - Vityata
访问api不是跨平台的。我相信UsedRangepywin32中被定义,但不知道它在appscript中如何定义。另一个答案更安全。 - Wtower

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接