人生苦短,我选Python

前文传送门

小白学 Python(1):开篇

小白学 Python(2):基础数据类型(上)

小白学 Python(3):基础数据类型(下)

小白学 Python(4):变量基础操作

小白学 Python(5):基础运算符(上)

小白学 Python(6):基础运算符(下)

小白学 Python(7):基础流程控制(上)

小白学 Python(8):基础流程控制(下)

小白学 Python(9):基础数据结构(列表)(上)

小白学 Python(10):基础数据结构(列表)(下)

小白学 Python(11):基础数据结构(元组)

小白学 Python(12):基础数据结构(字典)(上)

小白学 Python(13):基础数据结构(字典)(下)

小白学 Python(14):基础数据结构(集合)(上)

小白学 Python(15):基础数据结构(集合)(下)

小白学 Python(16):基础数据类型(函数)(上)

小白学 Python(17):基础数据类型(函数)(下)

小白学 Python(18):基础文件操作

小白学 Python(18):基础文件操作

小白学 Python(19):基础异常处理

小白学 Python(20):迭代器基础

小白学 Python(21):生成器基础

小白学 Python(22):time 和 calendar 模块简单使用

读取 Excel

不知道各位同学有没有见过有关 Python 操作 Excel 的广告。小编是见过好多次的,还只需 ¥9.9 就能学习,今天小编就为大家带来免费的 Python 操作 Excel 的入门教程。

仔细看,仔细学,本文价值 ¥9.9 哦~~~

这牛逼吹得我自己都有点脸红。

既然要操作 Excel ,那我们就需要先建立一个 Excel 。

首先在 Excel 中创建 3 个 Sheet ,别跟我说不知道什么是 Sheet ,可能你不适合看本篇内容。

测试使用 Excel 已经上传至代码仓库,有需要的同学可以取用。

Excel 内容如下:

请先暂时忽略右下角的日期时间,这日期时间并无实际作用,仅用来演示使用。

这是一个 Sheet 的数据,同样的 Sheet 存在 3 个。

可能各位同学看到这个 Excel 以后大致能猜到小编要干啥了,对,没错,你猜对了,小编就是要算一下平均成绩。

那么用 Excel 自带的公式来算平均成绩不香么,非要用 Python 算,劳民伤财的。

Excel 自带的函数确实强大,这个不得不服,但是,我如果要跨 Sheet 的操作呢?本文要玩的骚操作就是要跨 Sheet 计算平均成绩。

首先,我们需要导入第三方模块 xlrd ,因为是第三方的模块,没有安装的同学需要先安装。在命令行中输入:

pip install xlrd

等待进度条走完就好了。

获取 workbook:

首先,我们需要在代码中打开我们刚才创建的 Excel :

workbook = xlrd.open_workbook('test.xlsx')

小编这里为了方便,将 test.xlsx 和代码放在同一目录,实际在操作中需注意文件的路径问题,不管是使用相对路径还是绝对路径,都要写对。

Sheet 有关操作:

有关 Sheet 的操作有很多,我们列举几个常用的:

# 输出所有 sheet 的名字
print(workbook.sheet_names())
# 获取所有的 sheet
print(workbook.sheets())
# 根据索引获取 sheet
print(workbook.sheet_by_index(1))
# 根据名字获取 sheet
print(workbook.sheet_by_name('1班'))

输出结果我这里就不演示了,各位同学自己操作下就知道了:)

常用操作:

获取行数和列数:

sheet1 = workbook.sheets()[0]
# 获取行数
print(sheet1.nrows)
# 获取列数
print(sheet1.ncols)

结果如下:

6
4

获取整行和整列的数据(数据类型为列表):

# 获取第 2 行内容
print(sheet1.row_values(1))
# 获取第 3 列内容
print(sheet1.col_values(2))

结果如下:

['小明', 76.0, 85.0, 95.0, '']
['数学', 85.0, 58.0, 96.0, '', '']

获取单元格的数据:

cell1 = sheet1.cell(1, 1).value
# 行索引
cell2 = sheet1.row(1)[1].value
cell3 = sheet1.cell(1, 2).value
# 列索引
cell4 = sheet1.col(2)[1].value

结果如下:

76.0 76.0 85.0 85.0

获取日期类型数据:

date_value = xlrd.xldate_as_datetime(sheet1.cell_value(5, 3), workbook.datemode)
print(type(date_value), date_value)

结果如下:

<class 'datetime.datetime'> 2019-11-07 20:49:05

这里是直接通过方法将数据转成了 datetime 类型, xlrd 还提供了可以将数据转成元组,然后再将元组转成日期。

date_tulp = xlrd.xldate_as_tuple(sheet1.cell_value(5, 3), workbook.datemode)
print(type(date_tulp), date_tulp)
year, month, day, hour, minute, second = date_tulp
print(datetime.datetime(year, month, day, hour, minute, second))

结果如下:

<class 'tuple'> (2019, 11, 7, 20, 49, 5)
2019-11-07 20:49:05

今天的重头戏是求平均数,但是我不想在文章里贴代码了,只好请各位同学自己动下手咯~~~

当然,如果实在搞不定可以访问代码仓库,具体的实现代码小编还是会提交至代码仓库,不过小编还是希望各位同学能独立完成作业~~

示例代码

本系列的所有代码小编都会放在代码管理仓库 Github 和 Gitee 上,方便大家取用。

示例代码-Github

示例代码-Gitee

您的扫码关注,是对小编坚持原创的最大鼓励:)

小白学 Python(23):Excel 基础操作(上)相关推荐

  1. 小白学python系列-(3)基础数量类型

    整数 Python可以处理任意大小的整数,当然包括负整数,在程序中的表示方法和数学上的写法一模一样,例如:1,100,-8080,0,等等. 计算机由于使用二进制,所以,有时候用十六进制表示整数比较方 ...

  2. logback-spring.xml 文件路径 相对路径_小白学 Python(18):基础文件操作

    人生苦短,我选Python 前文传送门 小白学 Python(1):开篇 小白学 Python(2):基础数据类型(上) 小白学 Python(3):基础数据类型(下) 小白学 Python(4):变 ...

  3. python 相对路径报错_小白学 Python(18):基础文件操作

    人生苦短,我选Python 前文传送门 小白学 Python(1):开篇 小白学 Python(2):基础数据类型(上) 小白学 Python(3):基础数据类型(下) 小白学 Python(4):变 ...

  4. 小白学 Python(24):Excel 基础操作(下)

    人生苦短,我选Python 前文传送门 小白学 Python(1):开篇 小白学 Python(2):基础数据类型(上) 小白学 Python(3):基础数据类型(下) 小白学 Python(4):变 ...

  5. ora-00923数据类型不一致_小白学 Python(2):基础数据类型(上)

    如果我的文章对您有帮助,请关注支持下作者的公众号:极客挖掘机,获取最新干货推送:) 人生苦短,我选Python 引言 前文传送门 小白学 Python(1):开篇 接触一门新的语言,肯定要先了解它的基 ...

  6. 小白学 Python(2):基础数据类型(上)

    人生苦短,我选Python 引言 前文传送门 小白学 Python(1):开篇 接触一门新的语言,肯定要先了解它的基础数据类型.啥?你问我为啥要先了解基础数据类型? 为了你的生命安全,还是乖乖听我 B ...

  7. python 使用socks 爬虫_小白学 Python 爬虫(17):Requests 基础使用

    人生苦短,我用 Python 前文传送门: 小白学 Python 爬虫(1):开篇 小白学 Python 爬虫(2):前置准备(一)基本类库的安装 小白学 Python 爬虫(3):前置准备(二)Li ...

  8. post python爬虫_小白学 Python 爬虫(17):Requests 基础使用

    人生苦短,我用 Python 如果我的文章对您有帮助,请关注支持下作者的公众号:极客挖掘机,您的关注,是对小编坚持原创的最大鼓励:) 前文传送门: 小白学 Python 爬虫(1):开篇 小白学 Py ...

  9. 小白学vb还是python_小白学 Python 爬虫(30):代理基础

    人生苦短,我用 Python 前文传送门: 小白学 Python 爬虫(1):开篇 小白学 Python 爬虫(2):前置准备(一)基本类库的安装 小白学 Python 爬虫(3):前置准备(二)Li ...

最新文章

  1. NopCommerce 增加 Customer Attributes
  2. div中加载html js,Div里面载入另一个页面的实现(Ajax取代框架)
  3. 用了这个 IDE 插件,5分钟解决前后端联调!
  4. Web 静态文件版本升级代码
  5. 如何用JavaScript判断dom是否有存在某class的值?
  6. Android热修复升级探索——SO库修复方案 1
  7. 自然语言处理 —— 困惑度
  8. nginx 替换返回请求中的字符
  9. eclipse启动springboot项目_多模块项目中的一个Spring Boot启动错误
  10. java中的final的使用
  11. 复杂系统学习(五):细胞自动机 I:1D 和 2D CAs
  12. buctoj2021年ACM竞赛班训练(四)全题解
  13. python中average什么意思,Python3——numpy中mean和average的区别
  14. 工具应用——Chrome浏览器 F12控制台中文改成英文
  15. vue使用原生高德地图
  16. Pytorch的一些小问题
  17. matlab图片白边_matlab 图像保存时去除白边
  18. 单个正态总体均值的区间估计_总体均值的区间估计 (正态总体: σ2 已知实例).pdf...
  19. 二、TensorFlow2.x 基于图像的分类
  20. 微信开发------------公众号支付统一下单整个流程

热门文章

  1. 【演武厅】表达式求值实例
  2. Android8.0后静态广播以及有序广播的使用
  3. 华硕zx50j笔记本 拆机教程 换风扇教程
  4. 梦幻西游热门服务器卡顿延迟,梦幻西游:周末活动卡顿的最总原因,是人真的多还是服务器问题?...
  5. 20190827-Ubuntu查看内存槽的数目及内存信息
  6. Markdown文本编辑
  7. 第03课:如何学习“机器学习”
  8. build type和product flavors
  9. Java毕业设计_消防安全培训系统
  10. 解决Django migrate: Your models in app(s): ‘Mymodelclassname‘ have changes that are not yet reflected