人生苦短,我选Pythonhtml
前文传送门python
小白学 Python(2):基础数据类型(上)github
小白学 Python(22):time 和 calendar 模块简单使用
不知道各位同窗有没有见过有关 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 上,方便你们取用。
原文出处:https://www.cnblogs.com/babycomeon/p/11880144.html