利用 Python 来读取 Excel 的数据,将每一行的数据保存到 dict 字典中,最后将字典保存到 list 中。
安装库
python 操作 excel 主要用到 xlrd 和 xlwt 这两个库,即 xlrd 是读 excel ,xlwt 是写 excel 的库。
我的需求是读取excel文件,所以首先 pip install xlrd
获取
我自建了两个 sheet,如图:
可以通过以下三种方法来获取 “校园档案”:
rbook = xlrd.open_workbook('test1.xlsx') # 打开excel,创建一个workbook对象
table = rbook.sheet_by_name("校园档案") # 通过名称获取
# table = rbook.sheets()[1] # 通过索引顺序获取,注意是从0开始
# table = rbook.sheet_by_index(1) # 通过索引顺序获取
操作行&列
- 获取表的有效行数
num_rows = table.nrows # 获取该sheet中的有效行数
print("该表共有%d行" % num_rows)
- 获取第二行的值
print(table.row_values(rowx=1))
- 获取某一单元格的值,输入它的坐标
print(table.cell_value(rowx=2, colx=1))
对于列的操作,只需要把上面的所有代码中的 row 换成 col 即可。
循环保存到字典
将每一行的数据保存到 dict 字典中,最后将字典加到 list 中:
# 获取一个sheet
rbook = xlrd.open_workbook('test1.xlsx') # 打开excel,创建一个workbook对象 厦门鹭江宾馆
table = rbook.sheets()[1] # 通过索引顺序获取,注意是从0开始
# 循环获取
list = [] # 将所有数据汇总成一个list
num_rows = table.nrows # 获取该sheet中的有效行数
col_names = table.row_values(0) # 获取行数下标为0也就是第一行的数据值(表头)
print("该表共有%d行" % num_rows)
for row_num in range(1, num_rows):
row = table.row_values(row_num) # 获取每一行的数据值
if row:
dict = {}
for i in range(len(col_names)):
dict[col_names[i]] = row[i]
list.append(dict)
print(list)