python处理excel

最近需要帮助数据部门将一个文件下的多个excel文件合成为一个

之前在网上找了个excel宏改了下给他们 但是毕竟不是自己写的 给他们用起来会有很多不方便的地方没法改

因为不会VB 于是打算用python写个小脚本 本来觉得挺简单 一个小时就能搞定

结果越来越发现是个深坑…………


由于之前也用python操作过过excel,就自然的用xlrd和xlwt开始处理。

发现xlrd只能打开xls,没法打开xlsx。更新后问题解决

然后写的时候又发现xlwt只能写成xls,不能写成xlsx。

只好换个模块试试。


听说openpyxl能操作xlsx 于是装了用

但是发现它只能处理xlsx了 去读xls时甚至还友情提示你去用xlrd...


没办法 只能混合用了

但是写完运行的时候又发现了新的问题

用openpxl读写的时候 数据内部都转成了unicode编码表示 但是用xlrd读的时候并没有转换编码

所以依然行不通。。


无奈之下继续找

发现有pywin32 这个微软官方api

于是乎继续写…………

读写xls没一点问题……

读写xlsx……读没问题……写的时候打不开…………

天……


最终采取用pywin32读取,用openpyxl写

嗯,终于没问题了,实现了对各种格式的支持


听说还有个XlsxWriter,但是也只能写成xlsx。


天……

就不能有个专一简单的模块用么

--------------------------------------------------------------------------------------------------------------------------------------------------

后来发现编码报错是因为用os.listdir 读取了文件列表,然后写到excel时编码错误 而不是excel文件本身内容的原因

用chardet处理文件名发现是windows1252编码

但是用windows1252 decode之后再encode('utf8')发现是乱码


最终打包时发现codec报错编码为gbk

于是使用gbk解码 顿时解决所有问题


毕竟windows 还是基于gbk的啊…………


--------------------------------------------------------------------------------------------------------------------------------------------------

打包时选用py2exe win10下报错 没找到原因

换用pyinstaller 成功解决 并打包为一个独立的exe程序


--------------------------------------------------------------------------------------------------------------------------------------------------

最终方案 采用xlrd读取excel,openpyxl写xlsx,读取的windows系统的数据用gbk解码,然后用pyinstaller打包为一个exe文件




评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值