python操作Excel读写文件和分析数据

日常的工作和学习过程中充斥着大量excel操作,比如打开excel文件、计算数据、保存数据、绘图等等。python有诸多可以操作excel数据的模块如pandas,但想要一览完整的pandas是个相对庞大的工程,从操作excel出发python有更轻量的工具。本文将带大家认识一下python操作excel的模块——openpyxl,一个更容易上手的实用型模块。

windows安装:

openpyxl是第三方扩展库,通过 pip install openpyxl安装。


日常excel的操作主要包括创建、读、写、画图。

接下来我们逐一进行介绍。


创建excel文件、sheet表

  • openpyxl.Workbook()方法:创建excel对象
  • object.create_sheet()方法:创建sheet
  • object.save()方法:保存excel对象为本地文件

import openpyxl as ox
workbook = ox.Workbook()   # 内存中创建一个新的excel对象
worksheet_1 = workbook.create_sheet(title='sheetname', index=0)  # 在指定位置插入新的sheet
workbook.save('./excel_project/newfile.xlsx')   # newfile 命名文件,保存到同级的excel_project 文件夹中

读excel操作

openpyxl.load_workbook()方法

workbook = ox.load_workbook('./excel_project/newfile.xlsx')   # ###读excel文件
worksheet = workbook['sheetname']   # 读某个sheet
msg = worksheet['A1'].value   # 读单元格的内容
print(worksheet)
print(msg)
# 运行结果:
<class 'openpyxl.worksheet.worksheet.Worksheet'>
Values

写excel操作


worksheet['A5'] = 'Values'   # 方式1:写入单元格,此时只在内存读写
worksheet.cell(row=5, column=5, value='Values')   # 方式2:写入单元格
workbook.save('./excel_project/newfile.xlsx')   # 保存本地

甚至可以直接向单元格写入公式,如:

worksheet['A5'] = '=B5/C5'

但必要性不强。
既然使用python操作,就要构建关于数据处理的函数,将excel数据读取后带入函数计算,再将结果写入excel,这样明显高效很多且代码灵活性高,数据模型也能根据实际需要随时修订。


其他

访问excel对象的一些属性:

  • object.sheetnames:查看对象内所有sheet名称,返回列表格式
  • sheet的append操作
  • 单元格的切片操作(可获取范围内的单元格)

namelist = workbook.sheetnames
worksheet.append(['values1', 'values2', 0, 1])
ranges = worksheet['A1':'C5']

这里不过多介绍了,感兴趣的同学可自行尝试。


画图

openpyxl并未提供操作画图的功能。

想要实现还需结合python的其他作图模块。这里介绍一个比较便捷的替代方法,就是事先在excel里绘好透视表区域,再将计算结果写入,借用excel的自身功能生成区域内的透视图。


openpyxl模块讲到这里就基本结束了。

可以看到操作很简单,但实战还要做到融汇贯通,将python的语法和模块有效结合起来,才能发挥出openpyxl实际的应用价值。



作者:fakeProgramer
链接:https://www.jianshu.com/p/f362821b617f
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

  • 11
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

码农NoError

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值