第三个python小功能完成后记录——一、适用excel的三套模块整理

这是我第三个python小功能的制作,也是第一次拿自己会的一点点的东西帮同事做了一个小程序,正因为很曲折,我就记录一下,反思也许让自己学到更多,希望写的东西可以帮助别人。当然,作为一个菜鸟我写的肯定有很多不对的地方,如果真有人看并指出,我真的很感谢,我想有人教我,指出我的错误,我也能进步。不过还是要说,这是我的记录,有可能是这个时点比较符合我的逻辑判断,我自己也会慢慢接着学,进步后会来修正我的错误。

主要还是对于excel的数据处理:

1、首先从个人角度来说一下为了可以处理excel,我尝试了三套模块(附我的学习书籍)

(1)xlrd,xlwt,xlutils(我简称一下:3X模块)《从Excel到Python》

这是我开始会的,这是一套组合拳

功能:xlrd(读),xlwt(新建+写),xlutils(连接读写,+复制修改)

使用范围:因为组合所以较为适合xls格式的excel

优点:容易理解

缺点:保存后的xls文件不能二次编辑(编辑受限)

(2)xlwings《超简单用Python让Excel飞起来》蓝本

xlwings是之后我无法在3X模块下做到在单元格内部输入公式,随即转战学习xlwings模块,其拥有

表达式.formula = f'=(excel内部的函数公式例如:sum)'

而且从综合考虑,xlwings是最佳的,适用xls/xlsx

但是其有一个被动问题,就是如果出错了,我根本看不懂,例如下面这些报错:

1.pywintypes.com_error: (-2147352567, '发生意外。', (0, None, None, None, 0, -2147024809), None)

报错原因:这是我全篇使用xlwings模块时,分成两个自定义函数时,中间用的时app.quit(),但是app.quit只是关闭当前文件进程,往往不能把所有文件进程关闭,导致后面无法打开,所以最好要用app.kill()——所以我后面直接弃用app.quit(),反正我做的就是同步进程,一条线,之前的就应该全部关闭,app.kill() 很适合。

2.pywintypes.com_error: (-2147352567, '发生意外。', (0, 'Microsoft Excel', '不能访问只读文件“结果文件.xls”。', 'xlmain11.chm', 0, -2146827284), None)

报错原因:这是我准备3X模块和xlwings混合使用时发现,当3X模块完成部分数据处理后保存excel准备交给xlwings处理时,是打不开这个文件,也不能编写它,直接点开excel工作簿左下角都会显示受限编辑。

……当时只知道错了,却不知道该在哪个点解决,着实难受。(当然现在知道了)不过之所以说是被动,厉害的人不会出错那就没这个问题了。

优点:全面,可以在单元格里写公式

缺点:出问题了看不懂

(3)openpyxl《从Excel到Python》

解决不了时也学习了一下,不过最后还是因为其指适用于xlsx,同时《从Excel到Python》书上没有介绍如何将工作表复制到另一个工作簿上(当时需要有这个操作),再加上同样xlutils和openpyxl的冲突:zipfile.BadZipFile: File is not a zip file——所以也没怎么看。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值