![从Excel到Python:用Python轻松处理Excel数据](https://wfqqreader-1252317822.image.myqcloud.com/cover/813/36511813/b_36511813.jpg)
2.4 读取Excel 工作簿、工作表信息
要使用xlrd 库处理Excel 文件,必须先学会读取工作簿,以及读取工作簿下的工作表。完成这些操作,才能继续后面的工作。
2.4.1 读取Excel 工作簿
可以使用open_workbook 函数读取指定的工作簿并赋值给变量,在指定工作簿名称时,可以使用相对路径,也可以使用绝对路径。读取Excel 工作簿的代码如下,代码在 “Chapter-2-2.py” 文件中。
![img](https://epubservercos.yuewen.com/6EC4D6/19391578208687606/epubprivate/OEBPS/Images/txt002_6.jpg?sign=1739257650-fLVvsey4Pg06pQrJ8F6H06zEuPaW2rLD-0-40770493aa6e3c8e6810c32087166a18)
2.4.2 读取Excel 工作表
读取工作簿后,可能还需要读取工作簿中的工作表,如图2-4 所示。
![img](https://epubservercos.yuewen.com/6EC4D6/19391578208687606/epubprivate/OEBPS/Images/txt002_7.jpg?sign=1739257650-4vjC1pDlW21MEwWYFwbZSA1CjpZI4eMS-0-fecd86590cd9a91029187c86d85851ec)
图2-4 读取的工作表
读取Excel 工作表的代码如下,代码在 “Chapter-2-3.py” 文件中。
![img](https://epubservercos.yuewen.com/6EC4D6/19391578208687606/epubprivate/OEBPS/Images/txt002_8.jpg?sign=1739257650-OJ7cs1dsoyTIXtGel5mGwPyghCNWnDgI-0-c8ed1f805341a32123a35108ee0bfbec)
![img](https://epubservercos.yuewen.com/6EC4D6/19391578208687606/epubprivate/OEBPS/Images/txt002_9.jpg?sign=1739257650-xqESqMd7TXBoTk1WtLeB0lXlcFRzAUdT-0-21a206dc6efbdfaeed0041c6e2ad565a)
第3 行代码all_ws1=wb.sheets(),表示读取工作簿中的所有工作表并赋值给all_ws1 变量。工作表是存储在列表中的。all_ws1 变量中有3 个工作表对象,即[<xlrd.sheet.Sheet object at 0x000002C746400948>, <xlrd.sheet.Sheet object at 0x000002C746300288>, <xlrd.sheet.Sheet object at 0x000002C746406B08>]。
第4 行代码all_ws2=wb.sheet_names(),表示读取工作簿中的所有工作表名称并赋值给all_ws2 变量。注意这里读取的是工作表名称,不是工作表对象。这些工作表名称也是用列表来存储的。all_ws2 变量中的值为 ['飞龙队', '猛虎队', '雪豹队']。
第5 行代码ws1=wb.sheet_by_index(0),表示读取工作簿中第0 个工作表并赋值给ws1 变量。注意,索引值是从0 开始的,此时读取的是 “飞龙队” 工作表。
第6 行代码ws2=wb.sheets()[1],表示读取工作簿中的第1 个工作表并赋值给变量ws2,此种读取方式变量没有成员提示。注意,索引值是从0 开始的,此时读取的是“猛虎队” 工作表。
第7 行代码ws3=wb.sheet_by_name('雪豹队'),表示读取工作簿中名称为“雪豹队” 的工作表并赋值给ws3 变量。
第8 行代码ws4=xlrd.open_workbook(r'Chapter-2-3-1.xlsx').sheet_by_name('飞龙队'),表示直接通过工作簿来读取名称为 “飞龙队” 的工作表并赋值给ws4 变量。