博客
关于我
Python处理Excel数据
阅读量:796 次
发布时间:2023-03-07

本文共 1216 字,大约阅读时间需要 4 分钟。

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

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

openpyxl中定义了多种数据格式,我只涉及到了其中最重要的三种:NULL、numeric、string。NULL表示空值,对应于python中的None;numeric统一按照浮点数来处理,对应于python中的float;string表示字符串型,对应于python中的unicode。

每一个Excel数据文件从上至下分为三个层级的对象:workbook、sheet、cell。workbook对应整个Excel文件,sheet对应Excel中的一个表格,cell则是表格中的一个单元格,包含确定的行号和列号。

从一个既有的xlsx文件中读取数据,按照Excel文件的三个层级,分别做以下三个步骤:打开workbook、打开所需的sheet、获取对应cell的值。openpyxl提供了两种方式来读取cell:一种是按照Excel习惯的用字母表示列号,例如ws.cell('A4').value;另一种是直接指定行号和列号,例如ws.cell(row=3, column=0)。

写入数据的过程相对简单,同样经历四个步骤:新建workbook、新建sheet、写入数据、保存数据。新建workbook直接创建一个workbook对象即可:wb = Workbook()。新建sheet默认情况下会插入到workbook的最后一个位置,若想插入到最前面,可以传入参数0:ws1 = wb.create_sheet() #插入到末尾,ws2 = wb.create_sheet(0) #插入到最前面。写入数据直接将值赋给相应的cell,例如ws.cell('B5') = value1,ws.cell(row=3, column=7) = value2。最后保存数据,注意若保存路径下有同名文件,之前的文件会被覆盖:wb.save('file_name.xlsx')。

转载地址:http://cxofk.baihongyu.com/

你可能感兴趣的文章
python基础篇(6):global关键字
查看>>
python基础篇(5):None类型
查看>>
python基础篇(4):range语句
查看>>
python基础篇(3):print()补偿知识点
查看>>
python基础篇(2):字符串扩展知识点
查看>>
python基础篇(1):type()
查看>>
python基础篇(15):闭包
查看>>
python基础篇(14):多态
查看>>
python基础篇(13):类型注解
查看>>
python基础篇(12):继承
查看>>
python基础篇(11):封装
查看>>
python基础篇(10):自定义包
查看>>
python基础篇(10):类、对象与构造方法
查看>>
python系列【仅供参考】:python测试javaSDK总结
查看>>
python系列【仅供参考】:python斗地主
查看>>
Python基础教程(第2版 修订版) pdf
查看>>
python基础实践(四)
查看>>
Python基础学习笔记(九)常用数据类型转换函数
查看>>
Python基础学习参考(五):字符串和编码
查看>>
Python基础学习
查看>>