乔山办公网我们一直在努力
您的位置:乔山办公网 > excel表格制作 > Excel基础教程-小白学 Python(23):Excel 基础操作(上)

Excel基础教程-小白学 Python(23):Excel 基础操作(上)

作者:乔山办公网日期:

返回目录:excel表格制作

如果我的文章对您有帮助,请关注支持下作者的公众号:极客挖掘机,您的关注,是对小编坚持原创的最大鼓励:)


人生苦短,我选Python


读取 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())# 获取所有的 sheetprint(workbook.sheets())# 根据索引获取 sheetprint(workbook.sheet_by_index(1))# 根据名字获取 sheetprint(workbook.sheet_by_name('1班'))

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


常用操作:


获取行数和列数:


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

结果如下:


64

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


# 获取第 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].valuecell3 = 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)

结果如下:


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_tulpprint(datetime.datetime(year, month, day, hour, minute, second))

结果如下:


(2019, 11, 7, 20, 49, 5)2019-11-07 20:49:05

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


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


示例代码


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


示例代码-Github:https://github.com/meteor1993/python-learning/tree/master/base-excel


示例代码-Gitee:https://github.com/meteor1993/python-learning/tree/master/base-excel


相关阅读

关键词不能为空
极力推荐
  • excel打不开-Excel中出现 错误怎么办?

  • 假如是列宽不够的话,可以这样解决:改变字体大小适应列宽输入的时间、日期是保证是正值假如公式是正确的,结果却仍旧是负的,那就改变单元格数值格式。-excel打不开

ppt怎么做_excel表格制作_office365_word文档_365办公网