子涵先生最近遇到了一个任务,被领导喊去做手工搬运工。本不愿手工处理,但经过简单评估后短时间无法实现自动化,加之迫于时间压力,也只好做起了“肌肉运动”。
这部分工作大体分为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相关推荐

  1. php 删除xls文件,使用PHPExcel将xls文件转换为xlsx时出错

    我正在使用库PHPExcel在PHP中创建一个Web应用程序,一个功能是将xls文件转换为xlsx . 这是功能的代码: set_include_path(get_include_path() . P ...

  2. Python xls文件和xlsx文件格式互相转换

    Python xls文件和xlsx文件格式互相转换 1. xls文件另存为xlsx import win32com.client xls_path = 'D:\\1_Work_Task\\01_Int ...

  3. 想在Android应用程序中将XLS文件转换为PDF吗?看完这篇教程就懂了

    在各种情况下,您可能需要通过Internet共享Excel文件.为避免篡改,最佳做法是在共享之前将这些文件转换为PDF格式.因此,在本文中,将学习如何在Android应用程序中将Excel XLSX或 ...

  4. C# 实现xls类型转换为xlsx类型

    Office97-2003 创建的Excel文件后缀为xls, Office 2007 之后的版本创建的Excel文件后缀为 xlsx,在C#中使用EPPLUS模块读取2003版本创建的Excel存在 ...

  5. python实现批量新建文件夹

    python实现批量新建文件夹 因为前几天在整理数据集文件夹,需要将580多份120个文件移动到新建的文件夹中进行循环读取,也下载了不少软件试用,发现很多都需要会员才能处理大量文件,索性就自己写一个p ...

  6. 图解python pdf_Python批量将ppt转换为pdf的简单示例

    这篇文章主要为大家详细介绍了Python批量将ppt转换为pdf的简单示例,具有一定的参考价值,可以用来参考一下. 对python这个高级语言感兴趣的小伙伴,下面一起跟随512笔记的小编两巴掌来看看吧 ...

  7. python批量下载文件-Python实现批量下载文件

    Python实现批量下载文件 #!/usr/bin/env python # -*- coding:utf-8 -*- from gevent import monkey monkey.patch_a ...

  8. python批量下载网页文件-Python实现批量下载文件

    Python实现批量下载文件 #!/usr/bin/env python # -*- coding:utf-8 -*- from gevent import monkey monkey.patch_a ...

  9. python实现批量图片/文件重命名

    python实现批量图片/文件重命名 import osclass BatchRename():'''批量重命名文件夹中的图片文件'''def __init__(self):self.path = ' ...

最新文章

  1. 用hosting.json配置ASP.NET Core站点的Hosting环境
  2. python统计字符串个数_python字符串中字符出现次数(python获取字符串个数)
  3. ospf特殊区域,默认路由,汇总
  4. 【CV】MTCNN:3个CNN,胜过1个诸葛亮
  5. java小编程----电话号码组合
  6. vue3绑定多个事件
  7. 到底该不该使用存储过程
  8. 代码全靠copy,Bug又烂又多,做程序员的目的是什么?
  9. android 获取cpu型号_当贝投影带你认识投影仪CPU芯片有哪些?网友:真详细
  10. creator图片循环显示_Cocos creator 游戏背景循环滚动--Javascript编写
  11. Angular2-路由重定向的办法
  12. 组合计数——车的放置(逆元)+数三角形+序列统计(lucas定理)
  13. veracrypt 创建文件型加密卷
  14. RCN-Rich feature hierarchies for accurate object detection and semantic segmentation
  15. 2021最新 RocketMQ面试题精选(附刷题小程序)
  16. STM32的HAL库分析及使用
  17. LaTeX中手动修改参考文献格式
  18. 艰难的一年!2021年计算机考研年度总结!
  19. 详解六种常见的上下文切换场景
  20. 华软mysql考试_在广州大学华软软件学院就读是怎样一番体验?

热门文章

  1. Jenkins自动化构建vue项目然后发布到远程服务器
  2. 外贸软件进出口内贸综合型管理解决方案
  3. 和互联网公司服务器有关的一些情况
  4. 找出n以内最大的质数。python
  5. 前端学习day 10--小米商城首页的制作
  6. (转载)北京理工大学:《Python语言程序设计》____笔记整理
  7. j2ee期末考试总结
  8. 特斯拉国产又怎样,十个月后就完蛋
  9. 各国家 MCC 和 MNC 列表
  10. 创业者的心得:心有菩提手有刀,欲成舍利却成妖(转)