如果你需要从一个excel中摘取部分数据,那么,直接打开excel,随后粘贴复制即可。如果你需要从100个excel中以相同的方法摘取部分数据,那么,你应当写一个python脚本,写脚本的时间,一定小于你手工操作100个excel的时间,这就是程序存在的价值和意义。
读取excel,你使用xlrd这个库就足够了。
from xlrd import open_workbook
book = open_workbook('stu.xlsx') # 打开文件
sheet = book.sheet_by_name("学生信息") # 获得sheet
# 读取数据
编程语言,从来不会自动的解决某个实际应用问题,它只是提供最基础的操作,例如加减乘除。在这些基础操作的基础之上,人们封装了一些库,但这些库也仅仅是有针对性的提供一些业务层面的基础操作,具体应用中如何运用,每个人都可以有自己的想法。
读取excel里的数据,无非就下面三种方法
是不是有一点失望,python能做的事情似乎非常简单,并没有传说中的那么神奇?这就是职业程序员与业余们外汉对编程理解差异最大的地方。门外汉以为编程有魔法的力量,而职业程序员很清楚,那些所谓的魔法都是自己一行行代码编造出来的假象。
现在,我来演示如何从这个excel中找出身高最高的那位同学
从第二行开始按行读取数据,比较身高
nrows = sheet.nrows
max_height = 0
stu_name = ""
for i in range(1, nrows):
row_data = sheet.row_values(i)
if int(row_data[2]) > max_height:
max_height = int(row_data[2])
stu_name = row_data[0]
print(stu_name) # 小刚
先找到最大身高在身高列的索引位置,也就是这个身高所在的行,那么姓名列相同索引位置的值就是学生的姓名
height_column = sheet.col_values(2)[1:]
max_height = max(height_column)
index = height_column.index(max_height) # 最大身高的索引
stu_name =sheet.cell_value(index+1, 0) # 读取指定单元格
print(stu_name) # 小刚
两种读取最大身高学生姓名的方法里,我使用了按行读取,按列读取,和按单元格读取数据这三种方法。xlrd这个库只能帮到我们这些,剩下的,就要靠你自己去完成。如果到了这里,你就不知道如何继续下去,那么这就说明你仍然没有入门编程语言,你此前所学,都只是照猫画虎的皮毛,你还做不到像一个程序员一样去思考问题。
该如何才能像一个程序员一样去思考问题呢,我认为,你需要像程序员一样接受训练,看过乒乓球比赛么,是不是一看就会,但是当你拿起拍子时,球总是不能按照你期望的轨迹去运动,你甚至打不到球,因为,你从未接受过这方面的训练,编程既是知识,也是手艺,你学了很多知识,但没学到什么手艺。
你对python操作excel有任何的问题,或者实际的工作生活有这方面的需要,都可以来找我,我会尽力帮你解决。
QQ交流群: 211426309