用python读取excel需要哪些技能

如果你需要从一个excel中摘取部分数据,那么,直接打开excel,随后粘贴复制即可。如果你需要从100个excel中以相同的方法摘取部分数据,那么,你应当写一个python脚本,写脚本的时间,一定小于你手工操作100个excel的时间,这就是程序存在的价值和意义。

读取excel,你使用xlrd这个库就足够了。

  1. 第一步,打开文件
  2. 第二步,获得sheet
  3. 第三步,读取数据
from xlrd import open_workbook

book = open_workbook('stu.xlsx')            # 打开文件
sheet = book.sheet_by_name("学生信息")       # 获得sheet

# 读取数据

编程语言,从来不会自动的解决某个实际应用问题,它只是提供最基础的操作,例如加减乘除。在这些基础操作的基础之上,人们封装了一些库,但这些库也仅仅是有针对性的提供一些业务层面的基础操作,具体应用中如何运用,每个人都可以有自己的想法。

读取excel里的数据,无非就下面三种方法

  1. 读取某一行的数据
  2. 读取某一列的数据
  3. 读取某一个单元格的数据

是不是有一点失望,python能做的事情似乎非常简单,并没有传说中的那么神奇?这就是职业程序员与业余们外汉对编程理解差异最大的地方。门外汉以为编程有魔法的力量,而职业程序员很清楚,那些所谓的魔法都是自己一行行代码编造出来的假象。

现在,我来演示如何从这个excel中找出身高最高的那位同学

方法1, 逐行遍历,比较身高

从第二行开始按行读取数据,比较身高

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)     # 小刚

方法2, 读取身高列,获得最大身高的索引

先找到最大身高在身高列的索引位置,也就是这个身高所在的行,那么姓名列相同索引位置的值就是学生的姓名

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

加入知识星球, 每天收获更多精彩内容

分享日常研究的python技术和遇到的问题及解决方案