我使用python xlwings在Excel 2013中读取一列数据 . 列 A
填充了数字 . 要将此列导入python列表 py_list
,我有以下代码;
import xlwings as xw
wb = xw.Book('BookName.xlsm')
sht = xw.Book('SheetName')
py_list = sht.range('A2:A40').value
如果列数据填充在 A2:A40
,则上述代码有效 . 但是,列数据可以继续增长 . 数据可以增长并延伸到 A2:A46
或 A2:A80
. 最后一行是空的 . 在编译时不知道此列中有多少行数据 .
如何修改代码以检测最后一行的空单元格,以便 py_list
可以读取数据范围?
我愿意使用其他python库来读取除xlwings之外的Excel数据 . 我使用的是python v3.6
2 回答
我说这很多关于从csv或excel读取文件,但我会使用pandas .
另一种方法是使用动态公式,在excel中使用类似OFFSET的东西而不是
'A2:A40'
,或者可能是命名范围?经过多次反复试验,我将回答我自己的问题 .
这个问题的关键是找出列
A
中的行数 .使用下面的xlwings可以在这一行中找到行数;
需要仔细阅读API文档才能得到答案 .
http://docs.xlwings.org/en/stable/api.html#xlwings.Range
一旦找到行数,就可以很容易地找出其余的行 .