将Excel列中的数据读入Python列表
我正在使用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
。 最后一行是空的。 在编译时不知道该列中有多less行数据。
如何修改代码来检测最后一行的空单元格,以便可以通过py_list
读取数据的范围?
我打开使用其他python库来读取xlwings以外的Excel数据。 我正在使用python v3.6
我对从csv或excel中读取文件说了很多,但我会用pandas
。
import pandas as pd df = pd.read_excel('filename.xlsm', sheetname=0) # can also index sheet by name or fetch all sheets mylist = df['column name'].tolist()
一个替代scheme是使用Excel中的OFFSET而不是'A2:A40'
,或者可能是一个命名范围的dynamic公式。
经过多次的反复试验,我会回答我自己的问题。
这个问题的关键是找出列A
的行数。
可以使用下面的xlwings在这一行中find行数。
rownum = sht.range('A1').end('down').last_cell.row
需要仔细阅读API文档才能得到答案。
http://docs.xlwings.org/en/stable/api.html#xlwings.Range
一旦find行数,很容易找出其余的。