使用python把批量xls文件转换为xlsx

子涵先生最近遇到了一个任务,被领导喊去做手工搬运工。本不愿手工处理,但经过简单评估后短时间无法实现自动化,加之迫于时间压力,也只好做起了“肌肉运动”。
这部分工作大体分为3步,第一步是把xls转换为xlsx;第2步是把excel表头切换为复杂表头;第三步需要在系统上进行文件上传。
思来想去,第一步适合用python实现,第二步适合用java实现,第三步有之前子涵先生基于Python开发的鼠标点击器。趁国庆佳节,子涵先生便得空将第1-2步做了技术实现。
本节为使用python实现xls的格式转换,源码其实很简单,噔噔,开讲~

文章目录
第一版 单个xls文件转换第二版 目录下多个xls文件转换第三版 增加界面化组件,让用户自行选择文件夹后记

最终版下载地址:点我下载

第一版 单个xls文件转换

import win32com.client as win32

fname = "E:\\source.xls"
excel = win32.gencache.EnsureDispatch('Excel.Application')
wb = excel.Workbooks.Open(fname)

wb.SaveAs(fname+"x", FileFormat = 51) #FileFormat = 51 is for .xlsx extension
wb.Close() #FileFormat = 56 is for .xls extension
excel.Application.Quit()

那多个xls文件都需要转换格式怎么办?把需要转换的文件放置到同一个目录下不就好了吗?!好,请接着看。

第二版 目录下多个xls文件转换

import os
import win32com.client as win32

def save_as_xlsx(fname):
excel = win32.gencache.EnsureDispatch('Excel.Application')
wb = excel.Workbooks.Open(fname)

wb.SaveAs(fname+"x", FileFormat = 51) #FileFormat = 51 is for .xlsx extension
wb.Close() #FileFormat = 56 is for .xls extension
excel.Application.Quit()

if __name__ == "__main__":
package = "E:\\你的xls所在的文件夹\\"
files = os.listdir(package)
for fname in files:
if fname.endswith(".xls"):
print(fname + "正在进行格式转换,请稍后~")
save_as_xlsx(package + fname)
print(fname + "格式转换完成O(∩_∩)O哈哈~")
else:
print("跳过非xls文件:"+fname)

上面的代码还存在一个问题,文件夹的路径是写死的,是不是可以灵活配置或者交给用户自己选择呢?好,我们接下来继续优化。

第三版 增加界面化组件,让用户自行选择文件夹

import os
import win32com.client as win32
import easygui as eg

def save_as_xlsx(fname):
excel = win32.DispatchEx('Excel.Application')
wb = excel.Workbooks.Open(fname)

wb.SaveAs(fname + "x", FileFormat=51) # FileFormat = 51 is for .xlsx extension
wb.Close() # FileFormat = 56 is for .xls extension
excel.Application.Quit()

def pick_package():
# 打开windows窗口,选择一个文件夹
return eg.diropenbox()

if __name__ == "__main__":
package = pick_package()
files = os.listdir(package)
for fname in files:
if fname.endswith(".xls"):
print(fname + "正在进行格式转换,请稍后~")
try:
currentfile = package + "\\" + fname
save_as_xlsx(currentfile)
print(currentfile + "格式转换完成,O(∩_∩)O哈哈~")
except:
print(currentfile + "格式转换异常,┭┮﹏┭┮")
else:
print("跳过非xls文件:" + fname)
input("输入任意键退出")

最终效果:
使用python把批量xls文件转换为xlsx

后记

有时候不要太着急,忙于应付,还是要留出思考、探索的空间,你会发现有些事还是有捷径可寻的。

python真的是个好工具,通过简简单单的代码即可实现各种复杂的操作,各种神奇的功能被封装的明明白白,虽然我对其底层不能够明明白白,也自知无暇深入。
子涵先生本身是个javaer,目前并没有契机能够深入python的学习,所以只是用来解决实际问题。

使用python把批量xls文件转换为xlsx

感谢您的赏读。客官,点赞、留言再走呗~或者留下您的问题一起探讨

使用python把批量xls文件转换为xlsx

关注博主即可阅读全文
使用python把批量xls文件转换为xlsx

原创:https://www.panoramacn.com
源码网提供WordPress源码,帝国CMS源码discuz源码,微信小程序,小说源码,杰奇源码,thinkphp源码,ecshop模板源码,微擎模板源码,dede源码,织梦源码等。

专业搭建小说网站,小说程序,杰奇系列,微信小说系列,app系列小说

使用python把批量xls文件转换为xlsx

免责声明,若由于商用引起版权纠纷,一切责任均由使用者承担。

您必须遵守我们的协议,如果您下载了该资源行为将被视为对《免责声明》全部内容的认可-> 联系客服 投诉资源
www.panoramacn.com资源全部来自互联网收集,仅供用于学习和交流,请勿用于商业用途。如有侵权、不妥之处,请联系站长并出示版权证明以便删除。 敬请谅解! 侵权删帖/违法举报/投稿等事物联系邮箱:2640602276@qq.com
未经允许不得转载:书荒源码源码网每日更新网站源码模板! » 使用python把批量xls文件转换为xlsx
关注我们小说电影免费看
关注我们,获取更多的全网素材资源,有趣有料!
120000+人已关注
分享到:
赞(0) 打赏

评论抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

您的打赏就是我分享的动力!

支付宝扫一扫打赏

微信扫一扫打赏