社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Python

有了这篇python操作Excel学习笔记,以后储存数据 办公很轻松!

python • 4 年前 • 648 次点击  

微软的Windows操作系统在PC端具有碾压性的优势,它的Office办公软件在我们的日常工作学习中的应用可以说是无处不在。其中Excel是可编程性最好的办公应用,Python中的openpyxl模块能够对Exel文件进行读取、修改以及创建,在处理大量繁琐重复的Excel文件时,openpyxl模块让计算机自动进行处理成为可能。

本文主体将分为两大部分,第一部分介绍openpyxl模块的基本方法,主要涉及Excel的读取写入等方法,第二部分实践4个例子。

01

准备

安装openpyxl

openpyxl模块为Python的第三方库,需要使用pip指令进行安装:pip install openpyxl;安装完成之后再控制台输入import openpyxl回车之后没有报错则说明成功安装。

02

读取EXCEL

读取内容

该模块能够让Python读取Excel文件,以下为读取例子:

执行以上代码输出结果为:

在上述例子中,我们使用了这个模块的一些方法。使用wb = openpyxl.load_workbook('example4.xlsx')加载了example4.xlsx文件,存储再wb变量中;接着我们使用wb所指向的对象的get_sheet_names()方法获取这个工作簿的所有工作表的名称;使用get_active_sheet()方法获取活跃的工作表,即打开Excel文件默认展示的工作表;使用get_sheet_by_name()方法获取特定名称的工作表;接着我们获取单个单元格的值以及一个范围单元格的值。

03

写入EXCEL

写入内容

与Python中给变量赋值类似,openpyxl模块使用“=”赋值的方式将内容写入对应的单元格。在example4.xlsx文件中的“Sheet”工作表为空,我们现在往其中的单个单元格以及特定范围单元格写入内容。

写入前的“Sheet”工作表:

程序代码:

写入后的“Sheet”工作表:

通过以上例子我们成功的将值写入Excel文件,可以看给特定单元格赋值的方法有两种,一种是sheet['C4'].value = “值”的形式,另一种时sheet.cell(row=4,column=4).value = “值”的形式,两者效果等效,都是在C4单元格写入值,为了配合循环的使用,使用后一种更加方便。

除了以上的方法外,还有获取工作表大小、字体设置等的方法,在后面的实例中会有使用。其他更多的方法可以网上查询或到官方网站查阅文档:https://openpyxl.readthedocs.io/en/stable/

04

4个小例子

基于之前介绍的基本方法我们来实现4个小例子。

第一个例子的要求为:创建程序 ,从命令行接受数字 N,在一个 Excel 电子表格 中创建一个 N×N 的乘法表,另外行 1 和列 A 应该用做标签,应该使用粗体。最终的实现效果如下:

这个例子的思路首先要将第一行所有列的值,以及第一列所有行的值写入;接着某一个单元格的值就应该等于这个单元格所有行的第一列的值乘以所在列的第一行的值。具体实现如下:

这里第一步我们使用openpyxl.Workbook()函数创建了一个对象,并将该对象的引用返回存在wb变量中,而不是从已有的Excel文件加载。

第二个例子要求为:创建一个程序,它接受两个整数和一个文件名字符串作为 命令行参数。我们将第一个整数称为 N,第二个整数称为 M。程序应该从第 N 行开 始,在电子表格中插入 M 个空行。最终实现如下,在第4行插入5个空行:

实现思路为:先将前N行的数据存起来,原封不动放到新的工作表中;第N+1行到最后,每个单元格的行加M,整体后移M。实现代码如下:

第三个例子为:编写一个程序,翻转电子表格中行和列的单元格。例如,第 5 行第 3 列的值将 出现在第 3 行第 5 列(反之亦然)。这应该针对电子表格中所有单元格进行。实现前后效果如下:


实现思路为:逐行获取值,存为列表;最后将所有的行存成一个大的列表,这样“列表”[ i ][ j ]获得的就为第i行第j列的单元格的值;最后逐一取出列表的值,赋值给新列表第j行第i列的单元格。具体实现如下:

第四个例子为:编写一个程序,读入几个文本文件的内容,并 将这些内容插入一个电子表格,每行写入一行文本。第一个文本文件中的行将写入 列 A 中的单元格,第二个文本文件中的行将写入列 B 中的单元格,以此类推。

这里我准备了几份文本文件,我们将这些文件以单元格的形式写入Exel文件:

实现的效果如下

实现思路:使用os库的listdir()方法找到所在目录的所有文件,接着找出.txt文件,循环遍历获取文件名;使用文件打开的方法打开文件,使用readlines()读取内容以列表形式返回所有的内容;最后遍历这个列表写入Excel文件。详细实现如下:

可以从文件写入Excel表格,反过来也可以将Excel中的内容写入文件,以列为单位,一列代表一个文件,写到txt文件中。有兴趣的看官可以尝试一下。

05

结束

以上为Python操作Excel的基本方法,看起来好想没有想象中那么自动化,但是这些都是最基本的操作。就好比做菜用到的原材料、调料等,但是不同的人做出来的菜水平不一,这里用到的方法可以看作时原材料,最终实现的功能看作做好的菜,做出来的菜好不好吃,做出来的功能好不好用,就看想法、看技术实现了。

*声明:本文于网络整理,版权归原作者所有,如来源信息有误或侵犯权益,请联系我们删除或授权事宜。

觉得不错,点个“在看”然后转发出去


Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/111172
 
648 次点击