Python 实现 Excel 的读写操作「读取 Excel 文件」
AI悦创
共 1162字,需浏览 3分钟
·
2021-02-10 21:57
你好,我是悦创。
上一篇写文件已经搞定「Python 实现 Excel 的读写操作「写入Excel文件」」,接下来就要学习下 Excel 的读操作。
写入 Excel 的库是 xlwt ,对应 write ;读取 Excel 的库是 xlrd ,对应r ead ;xlrd 的安装命令:pip install xlrd
首先导入 xlrd,然后打开前面写好的 “虚假用户数据.xls”,代码如下:
import xlrd
wb = xlrd.open_workbook('虚假用户数据.xls')
打开了文件之后,wb 代表当前文件。读取数据,需要指定具体的 sheet,有两种方式,分别是通过索引和名称,如下代码:
sheets = wb.sheets() # 获取文件中全部的sheet,返回结构是list。
sheet = sheets[0] # 通过索引顺序获取。
sheet = wb.sheet_by_index(0) # 直接通过索引顺序获取。
sheet = wb.sheet_by_name('第一个sheet') # 通过名称获取。
此时获取到了 sheet 对象,然后从这里取出数据就可以。
sheet 的内容是二维表格,取数据全靠行数和列数,定位具体的格子,然后拿到格子里面的内容。
「如果我们要取出全部的内容咋办?」 获取 sheet 的总行数和列数,然后循环就行。
取出总行数和列数的代码如下:
rows = sheet.nrows
cols = sheet.ncols
rows就是总行数,cols是总列数。有这两值,然后两层循环,取数据就行。
那我们需要把 Excel 的每一行数据提取出来,而且我们一行有四列数据。四列数据变化的是:「列数」,不变的是:「行数」 —— 所以率先循环的就是 「行」 后循环的是 「列」 。
「Ps:第一层循环后会等待第二层循环全部循环完毕,后再继续循环外层循环「第一层」。」
如下代码:
for row in range(rows):
for col in range(cols):
print(sheet.cell(row, col).value, end=' , ')
print('\n')
「效果图【只截图头部】:」
读数据,指定某行某列,定位到具体方格,取出里面的值即可,代码是 sheet.cell(row,col).value 。
评论