首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

【壹零学院】​Python处理Excel文件并打包EXE可执行文件

01

推荐用openpyxl库处理Excel表

在现代的数据驱动时代,Excel表格成为各行各业中最常用的数据存储和处理工具之一。然而,对于大量数据或需要自动化处理的任务来说,手动操作Excel显然是低效而繁琐的。

小陈老师在工作中就碰到了一个任务需求:定时检查邮箱中是否存在对应主题的邮件,若存在对应主题的邮件,需要将邮件中的附件Excel下载到本地,根据相应的规则对邮件进行解析,检查修改填充相应的数据内容,最终将处理完Excel文件返回给发件人。

本来接到这个需求想通过Java进行实现,奈何对方电脑上没有配置Java的环境变量所以在交付使用的环节可能会出现问题,后来决定通过Python解决。

通过本例,将教大家如何使用Python来处理Excel文件,并且将其打包成可执行文件(EXE),让您可以在没有Python环境的计算机上也能轻松运行您的数据处理任务。

在处理Excel文件的时候推荐大家两个强大的库Pandas和openpyxl。它们为Excel数据处理带来了崭新的解决方案。openpyxl允许我们直接访问和修改Excel文件的单元格、样式和图表等内容。相比于其他库,openpyxl的优势在于它可以完全控制Excel文件的结构和外观,让我们能够实现更加细致和定制化的操作。

要使用openpyxl,我们需要先安装相应的模块:pip install openpyxl。

02

建立Excel文件

下面通过建立和修改Excel文件的实例来了解一下openpyxl的用法。

新建一个Excel文件,向Excel文件中添加三行数据,分别是姓名、年龄、城市。首先我们导入相关的函数Workbook。Workbook相当于创建一个wb对象,一个空白的Excel文件,然后获通过wb.active()获取到当前活动工作表,也就是我们常说的Sheet页面。

其次可以准备我们需要的数据了,这里我们通过双重列表的形式展现,内层嵌套了三条不同的数据信息【Name、Age、City】,大家也可以根据自己的数据进行替换,然后通过循环的方式,读取双重列表,将列表的数据通过append方法填充到我们的Excel已经激活的Sheet工作表中。添加完成后不要忘记将我们的Excel保存到指定的路径中。这样运行Python代码大家就会发现我们的Excel文件中已经填充了三行数据,这三行数据刚刚是我们代码中所写的(图1)。     

03

修改Excel文件

完成新建并填充Excel数据内容后,接下来看看修改Excel中的数据内容。我们需要导入相关的函数load_workbook,顾名思义也就是打开加载我们的Excel文件,这里打开加载文件需要使用Excel文件的全路径,否则会出现文件找不到的情况。

然后获通过wb.active()获取到当前活动工作表,获取到对应的工作表我们便可以对Excel表中的数据进行修改了,修改数据的方式有两种一种直接通过横纵坐标的方式修改,比如我想将C2中的New York修改为China,直接通过ws[‘C2’] = 替换的内容即可,也可以指定第几行第几列的方式来决定(cell表示行和column表示列,value代表替换的内容)。替换完成后不要忘记将文件进行保存。再次打开更新后的文件我们会发现Excel数据内已经完成替换。

使用openpyxl需要注意的一点是目前只支持.xlsx类型的Excel文件,若是.xls类型的文件只能使用xlrd和xlrw两个模块(图2)。

04

打包Python代码cel文件

最后我们将自己写完的程序打包成EXE可执行文件,那么别人拿到后便可以双击直接运行了,首先我们需要安装一个模块PyInstaller,安装完成后我们打开代码所在的目录,通过一句简单的命令即可打包完成,还可以选择自定义程序图标,代码有两种格式:

不选择图标:pyinstaller -F -w .py

选择图标:pyinstaller -F -i.ico .py

当看到Building ExE……successfully。时候表示已经程序打包完成,在当前目录下的dist文件夹中生成一个名为your_script.exe的可执行文件,其中your_script是我们脚本的文件名。这个EXE文件就是我们的Python脚本的可执行版本,默认图标是一个Python的蛇图案。

无论是处理大量数据还是进行复杂数据操作,Pandas和openpyxl的组合将为您提供强大的数据处理能力,让您的Excel文件处理更上一层楼。当然本次文章我们只讲述了openpyxl使用方法,并教大家如何将我们编写的代码进行打包使用。后续会分享Pandas更加高效的数据处理的内容,也期待和大家一起进步一切学习。

编辑|张毅

审核|吴新

  • 发表于:
  • 原文链接https://page.om.qq.com/page/OH2wCFROuybfgza76axwPaUg0
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券