使用python把批量xls文件转换为xlsx
子涵先生最近遇到了一个任务,被领导喊去做手工搬运工。本不愿手工处理,但经过简单评估后短时间无法实现自动化,加之迫于时间压力,也只好做起了“肌肉运动”。
这部分工作大体分为3步,第一步是把xls转换为xlsx;第2步是把excel表头切换为复杂表头;第三步需要在系统上进行文件上传。
思来想去,第一步适合用python实现,第二步适合用java实现,第三步有之前子涵先生基于Python开发的鼠标点击器。趁国庆佳节,子涵先生便得空将第1-2步做了技术实现。
本节为使用python实现xls的格式转换,源码其实很简单,噔噔,开讲~
文章目录
- 第一版 单个xls文件转换
- 第二版 目录下多个xls文件转换
- 第三版 增加界面化组件,让用户自行选择文件夹
- 后记
最终版下载地址:点我下载
第一版 单个xls文件转换
import win32com.client as win32fname = "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 win32def 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 extensionwb.Close() #FileFormat = 56 is for .xls extensionexcel.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 egdef 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 extensionwb.Close() # FileFormat = 56 is for .xls extensionexcel.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 + "\\" + fnamesave_as_xlsx(currentfile)print(currentfile + "格式转换完成,O(∩_∩)O哈哈~")except:print(currentfile + "格式转换异常,┭┮﹏┭┮")else:print("跳过非xls文件:" + fname)input("输入任意键退出")
最终效果:
后记
有时候不要太着急,忙于应付,还是要留出思考、探索的空间,你会发现有些事还是有捷径可寻的。
python真的是个好工具,通过简简单单的代码即可实现各种复杂的操作,各种神奇的功能被封装的明明白白,虽然我对其底层不能够明明白白,也自知无暇深入。
子涵先生本身是个javaer,目前并没有契机能够深入python的学习,所以只是用来解决实际问题。
感谢您的赏读。客官,点赞、留言再走呗~或者留下您的问题一起探讨
使用python把批量xls文件转换为xlsx相关推荐
- php 删除xls文件,使用PHPExcel将xls文件转换为xlsx时出错
我正在使用库PHPExcel在PHP中创建一个Web应用程序,一个功能是将xls文件转换为xlsx . 这是功能的代码: set_include_path(get_include_path() . P ...
- Python xls文件和xlsx文件格式互相转换
Python xls文件和xlsx文件格式互相转换 1. xls文件另存为xlsx import win32com.client xls_path = 'D:\\1_Work_Task\\01_Int ...
- 想在Android应用程序中将XLS文件转换为PDF吗?看完这篇教程就懂了
在各种情况下,您可能需要通过Internet共享Excel文件.为避免篡改,最佳做法是在共享之前将这些文件转换为PDF格式.因此,在本文中,将学习如何在Android应用程序中将Excel XLSX或 ...
- C# 实现xls类型转换为xlsx类型
Office97-2003 创建的Excel文件后缀为xls, Office 2007 之后的版本创建的Excel文件后缀为 xlsx,在C#中使用EPPLUS模块读取2003版本创建的Excel存在 ...
- python实现批量新建文件夹
python实现批量新建文件夹 因为前几天在整理数据集文件夹,需要将580多份120个文件移动到新建的文件夹中进行循环读取,也下载了不少软件试用,发现很多都需要会员才能处理大量文件,索性就自己写一个p ...
- 图解python pdf_Python批量将ppt转换为pdf的简单示例
这篇文章主要为大家详细介绍了Python批量将ppt转换为pdf的简单示例,具有一定的参考价值,可以用来参考一下. 对python这个高级语言感兴趣的小伙伴,下面一起跟随512笔记的小编两巴掌来看看吧 ...
- python批量下载文件-Python实现批量下载文件
Python实现批量下载文件 #!/usr/bin/env python # -*- coding:utf-8 -*- from gevent import monkey monkey.patch_a ...
- python批量下载网页文件-Python实现批量下载文件
Python实现批量下载文件 #!/usr/bin/env python # -*- coding:utf-8 -*- from gevent import monkey monkey.patch_a ...
- python实现批量图片/文件重命名
python实现批量图片/文件重命名 import osclass BatchRename():'''批量重命名文件夹中的图片文件'''def __init__(self):self.path = ' ...
最新文章
- 用hosting.json配置ASP.NET Core站点的Hosting环境
- python统计字符串个数_python字符串中字符出现次数(python获取字符串个数)
- ospf特殊区域,默认路由,汇总
- 【CV】MTCNN:3个CNN,胜过1个诸葛亮
- java小编程----电话号码组合
- vue3绑定多个事件
- 到底该不该使用存储过程
- 代码全靠copy,Bug又烂又多,做程序员的目的是什么?
- android 获取cpu型号_当贝投影带你认识投影仪CPU芯片有哪些?网友:真详细
- creator图片循环显示_Cocos creator 游戏背景循环滚动--Javascript编写
- Angular2-路由重定向的办法
- 组合计数——车的放置(逆元)+数三角形+序列统计(lucas定理)
- veracrypt 创建文件型加密卷
- RCN-Rich feature hierarchies for accurate object detection and semantic segmentation
- 2021最新 RocketMQ面试题精选(附刷题小程序)
- STM32的HAL库分析及使用
- LaTeX中手动修改参考文献格式
- 艰难的一年!2021年计算机考研年度总结!
- 详解六种常见的上下文切换场景
- 华软mysql考试_在广州大学华软软件学院就读是怎样一番体验?