前段时间做了个小项目,帮个海洋系的教授做了个数据处理的软件。基本的功能很简单,就是对excel里面的一些数据进行过滤,统计,对多个表的内容进行合并等。之前没有处理excel数据的经验,甚至于自己都很少用到excel。记得《python核心》的最后一章里有讲到用win32 com操作office, 看了一下讲的不是很清楚。google了一下找到不少能处理excel数据的模块。对比了一下最终选定了openpyxl,openpyxl专门用于处理excel2007及以上版本产生的xlsx文件。不幸的是我所得到的数据中xls和xlsx都有,不过转换并不是什么难事,就暂时吧这个问题忽略了。

模块的安装过程非常简单,官网上有简单的使用说明和api文档,整体来说使用非常容易,也基本能满足我的需求。对于excel文件,我所需要的只是从中将相应位置的数据读取出来,以及把数据写入到对应的位置中去。而其间数据的处理,通过python可以很容易地完成。

1. excel数据的类型及组织方式

openpyxl中定义了多种数据格式,我只涉及到了其中最重要的三种:

null: 空值,对应于python中的none,表示这个cell里面没有数据。

numberic: 数字型,统一按照浮点数来进行处理。对应于python中的float。

string: 字符串型,对应于python中的unicode。

每一个excel数据文件从上至下分为三个层级的对象:

workbook: 每一个excel文件就是一个workbook。

sheet: 每一个workbook中可以包含多个sheet,具体就对应excel中我们在左下脚所看到的“sheet1”,“sheet2”等。

cell: 每一个sheet就是我们通常所看到的一个表格,可以含有m行,n列,每个确定的行号,列号所对应的一个格子就是一个cell。

2. 从excel中读取数据

从一个既有的xlsx文件中读取数据,按照excel文件的三个层级,分别做以下三个步骤

1. 打开workbook:

from openpyxl import load_workbook

wb = load_workbook('file_name.xlsx')2. 打开所需的sheet:

我们可以这样打开workbook中的第一个sheet:

ws = wb.get_active_sheet()变量_active_sheet_index用来确定获取哪一个sheet,而默认情况下它被置为0。

也可以通过sheet的名称来获取sheet:

ws = wb.get_sheet_by_name("sheet_name")openpyxl似乎没有提供按索引来读取sheet,不过我们总是能很容易地通过sheet_name来实现:

sheet_names = wb.get_sheet_names()

ws = wb.get_sheet_by_name(sheet_names[index])3. 获取对应cell的值:

openpyxl提供可两种方式来读取cell,一是按照excel的习惯用字母来代表列号,例如:

c = ws.cell('a4').value也可以按照行号列号来读取:

d = ws.cell(row = 3, column = 0)3. 将数据写入excel

同读取类似,写入一个excel文件,要经历一下四个步骤:

1. 新建workbook

直接新建一个workbook对象即可:

wb = workbook()2. 新建sheet

默认情况下,新创建的sheet是排在最后的,若想要创建一个排在最前的sheet,可以传入参数0:

ws1 = wb.create_sheet()  # insert at the end

ws2 = wb.create_sheet(0)  # insert at the first position3. 写入数据

直接将要写入的数据赋值给相应的cell即可,若仅仅是修改一个表。可以跳过前两个步骤,不过要注意不要覆盖掉其它数据:

ws.cell('b5') = value1

ws.cell(row = 3, column = 7) = value24. 保存数据

最后写入将数据写入即可,注意若保存路径下有同名的文件的话,之前的文件会被覆盖:

wb.save('file_name.xlsx')

如您对本文有疑问或者有任何想说的,请点击进行留言回复,万千网友为您解惑!

python处理excel数据计算_Python处理Excel数据相关推荐

  1. iOS 数据计算带小数点导致数据不精确问题

    iOS 数据计算带小数点导致数据不精确问题 我在开发中碰到一个UIScrollView跳动的问题,明明各个地方都没有问题,最后发现原来是计算ContentSize时有个计算需要除以2 /2.00 我这 ...

  2. python 销售数据分析输出表格_Python处理Excel数据实例--销售数据分析

    数据分析笼统来说,大概分为五个步骤:提出问题.理解数据.数据清洗.构建模型.数据可视化.在数据分析中,很基础又关键的一步就是数据清洗,对原始数据的处理会花掉整个分析过程的很大一部分时间,这是因为如果前 ...

  3. python读excel中数据画图_python读取excel数据并且画图的实现示例

    一,要读取的数据的格式: 二,数据读取部分: b站视频参考:https://www.bilibili.com/video/BV14C4y1W7Nj?t=148 # 1930 workbook=xlrd ...

  4. python表格多列合并_python 合并excel表格数据-如何用python从excel中同时提取两个列的数据,并生成dict(用xlrd)...

    用Python导出工程文件两个子页里的数据成为两个excel表格,但我想把它合并成个一个excel表格的两个sheet 可以采用一些操作Excel块去实现,比如xlrd.xlwt.openpyxl.x ...

  5. python读excel成数组_python读取excel数据 python怎么从excel中读取数据?

    python怎么从excel中读取数据?分母那么浩瀚,分子那么微弱.唯一就等于没有. #导入包 import xlrd #设置路径 path='C:\\Users\\jyjh\\Desktop\\da ...

  6. python 做excel可视化报告_Python操作Excel制作可视化数据图,实现自动化办公

    前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,如有问题请及时联系我们以作处理. 以下文章来源于IT入门 安装 操作一个简单的Excel文档 操作注释及代码: 操作完成后,数 ...

  7. python做excel表格代码_Python读写Excel表格

    最近在做一些数据处理和计算的工作,因为数据是以.CSV格式保存的,因此刚开始直接用Excel来处理. 但是做着做着发现重复的劳动,其实并没有多大的意义,于是就想着写个小工具帮着处理. 以前正好在一本书 ...

  8. python调用excel的书_Python读写Excel表格

    原博文 2018-09-13 20:28 − 最近在做一些数据处理和计算的工作,因为数据是以.CSV格式保存的,因此刚开始直接用Excel来处理. 但是做着做着发现重复的劳动,其实并没有多大的意义,于 ...

  9. python相比于excel的优势_Python处理excel的优点

    在我们工作中往往需要处理大量的数据,因此Excel在我们工作中是一个必不可少的工具,不过,近期很多人开始用Python处理数据,那么,大家为什么开始用Python了呢?Python辅助处理excel的 ...

  10. python .db 查看表信息_python查询excel数据库表

    Python数据持久化-小测验 2018年7月13日考试 1.Python读写csv文件 现有如下图1所示的data.csv文件数据,请使用python读取该csv文件数据,并添加一条记录后输出如图2 ...

最新文章

  1. tomcat与resin的比较
  2. 【yolov4目标检测】(4) opencv+yolov4-tiny 实现选择性目标检测,附python完整代码
  3. JDBC连接MySQL
  4. 网络通道联调及SSH服务启动
  5. android旋转动画和平移动画具体解释,补充说一下假设制作gif动画放到csdn博客上...
  6. 微信小程序获取用户信息以及唯一openid
  7. 影响数百万人的21个经典全英文演讲,看完英语水平暴增!赶紧收藏
  8. 33643分!曼巴精神永不熄,数据回顾科比20年职业生涯辉煌
  9. Microsoft Excel常用操作
  10. maven配置仓库及部署jar包
  11. 服务器如何自动校准北京时间,北京时间
  12. Visio绘制时间轴、日程安排图、时间进度图的方法
  13. 如何用计算机算tan2,arctan计算器(万能计算器在线使用)
  14. 18年一剑!德州心脏研究所研制出磁悬浮心脏,每秒2000转,为心衰患者续命
  15. 观影计划:漫威电影宇宙「无限战争」系列
  16. directive-自定义指令
  17. 360安全卫士添加信任区
  18. 学习ES6(六)--函数 Lambda函数(=) 详解
  19. MATLB|多微电网及分布式能源交易
  20. 编程段子│只有程序猿才能看懂的搞笑段子

热门文章

  1. 华三ASPF技术白皮书
  2. Windows科研工具
  3. pythonudp通信程序_python中UDP编程实现通信
  4. PostgreSQL usermanual翻译暂停20200420
  5. java计算机毕业设计高校贫困生信息管理系统源码+mysql数据库+系统+lw文档+部署
  6. AI产品经理必懂的硬知识(一):应用领域篇
  7. [第八章] 深入理解计算机系统第三版 家庭作业参考答案
  8. Revit二次开发——依据两条平曲线创建一条三维曲线
  9. Python爬虫滑块验证
  10. 2015年两化融合管理体系贯标试点企业