需要安装pywin32模块

pip install pywin32

主程序:

import win32com.client as win32
import os.path
import glob class Format():
"""用于文件转换的类"""
def __init__(self):
self.excel = win32.gencache.EnsureDispatch('Excel.Application')
def xlsx2xls(self, xlsx_path, xls_path):
"""
07版本excel转成03版本,多文件转换
:param xlsx_path: 07路径
:param xls_path: 03路径
:return:
"""
path_list = glob.glob(xlsx_path + '\\*.xlsx') # 获取文件夹下所有xlsx for file in path_list:
filename = os.path.basename(file).replace('.xlsx', '.xls') # 获取文件名
wb = self.excel.Workbooks.Open(file)
wb.SaveAs(xls_path + '\\' + filename, FileFormat=56) # xls为56
wb.Close() self.excel.Application.Quit()
print('xlsx2xls转换完成') def xlsx2xls_single(self, xlsx_path, xls_path):
"""
excel 单个文件转换
:param xlsx_path: 07版本
:param xls_path: 03版本
:return:03版本文件路径
"""
try:
filename = os.path.basename(xlsx_path).replace('.xlsx', '.xls') # 获取文件名
wb = self.excel.Workbooks.Open(xlsx_path)
xls_path = os.path.dirname(xlsx_path)
xls_path = xls_path.replace('/', '\\')
save_path = xls_path+'\\'+filename
wb.SaveAs(save_path, FileFormat=56) # xls为56
wb.Close()
self.excel.Application.Quit()
print('xlsx2xls转换完成')
except Exception as e:
wb.Close()
self.excel.Application.Quit()
print(e) return save_path if __name__ == '__main__':
test = Format()
test.xlsx2xls_single(xlsx_path=r'E:\TestFile\AutoReport_Test\CD\新生成的报告\2020-11-21\311671.xlsx', xls_path=r"E:\TestFile\AutoReport_Test\CD\新生成的报告\2020-11-21")

ps: 该模块使用的路径格式分隔符为“\\”

python excel 07版本转换为03版本的更多相关文章

  1. C#导入Excel、Excel导入、导入.xls 、导入.xlsx、Excel2003版本、Excel2007版本

    C#导入Excel: 1.选择Excel 03版文件 2.选择需要读取数据的Excel工作表   3.选择工作表中需要读取的列 源码地址在图片下面,不要点击图片,点击下载地址跳转下载.

  2. 用python + openpyxl处理excel(07+)文档 + 一些中文处理的技巧

    sklearn实战-乳腺癌细胞数据挖掘(博主亲自录制视频教程) https://study.163.com/course/introduction.htm?courseId=1005269003&am ...

  3. PyQt5UI文件转换为对应版本的py文件

    PyQt5 UI文件转换为对应版本的py文件 #coding=utf-8 ''' PyQt5 UI文件转换为对应版本的py文件 python -m PyQt5.uic.pyuic untitled.u ...

  4. Python包管理工具和多版本环境管理

    1. Python包管理工具 在安装Python包的过程中,经常涉及到distutils.setuptools.distribute.setup.py.easy_install.easy_instal ...

  5. 【Python】2.x与3​​.x版本的选用&版本间的区别

    转自 http://www.runoob.com/python/python-2x-3x.html 一.2.x与3​​.x版本的选用建议 Python的3​​.0版本,常被称为Python 3000, ...

  6. python - selenium 2 升级到最新版本

    python - selenium 2 升级到最新版本 之前一直用的是selenium 2.48 .firefox36 而实际用户的浏览器可能都有自动更新功能,所以版本基本上是最新的.所以这次专门做了 ...

  7. Ubuntu16.04 下 python 3.6 安装以及各版本python切换(同时解决各种依赖缺失)

    有些博客给出了从源代码通过./configure.make.sudo make 会导致安装玩之后出现各种依赖缺失的问题,如_sqlite3._bz2 等问题. 当然也有很多帖子给出了从系统自带的pyt ...

  8. python安装方法- 3.6.3版本

    一. 官网下载安装包: 官网网址:https://www.python.org/ 我下载的是3.6.3版本,如下图:  二. 安装安装包, 1. 直接双击运行  2. 选择Customize inst ...

  9. Python在windows平台的多版本配置

    Python在windows平台的多版本配置 快速阅读: ​ python在windows平台的环境变量以及多版本配置 ,以及pycharm如何安装包,以及安装包出错时如何排查. 1.python环境 ...

  10. Selenium2+python自动化2.7-火狐44版本环境搭建(转)

    转载地址:https://www.cnblogs.com/yoyoketang/p/selenium.html 前言 目前selenium版本已经升级到3.0了,网上的大部分教程是基于2.0写的,所以 ...

随机推荐

  1. 【必知必会的MySQL知识】②使用MySQL

    目录 前言 启动MySQL服务 连接MySQL MySQL数据库基本命令 小结 前言 根据上一篇文章[必知必会的MySQL知识]①初探MySQL的内容,想必您对MySQL数据库有了一个整体的了解了,并 ...

  2. 关于OA系统的取数依据,以及如何逆向查询数据错误的思路。

    1.正文 00.起因 源于财务在群里发的问题.我估计对于很多同事,又会像往常一样充满疑问,尤其是对于oa的取数会有疑问,然后业务能力极差的那部分,又会想到这是运营的问题(话说关运营什么事?),这是项目 ...

  3. vue中让嵌入的iframe完美自适应宽度、高度

    涉及到系统集成的时候,前端我们经常会用到iframe嵌入,但是嵌入的时候经常有不适应的情况,太长或太宽.滚动条... 下面的方法可以做到使嵌入的iframe自适应宽度.高度, 1.嵌入iframe,加 ...

  4. 2022-04-23:给定你一个整数数组 nums 我们要将 nums 数组中的每个元素移动到 A 集合 或者 B 集合中 使得 A 集合和 B 集合不为空,并且 average(A) == aver

    2022-04-23:给定你一个整数数组 nums 我们要将 nums 数组中的每个元素移动到 A 集合 或者 B 集合中 使得 A 集合和 B 集合不为空,并且 average(A) == aver ...

  5. pgadmin数据输出不存在了?

    菜单栏→文件→重置布局.这样数据输出就显示了.

  6. 2020-10-18:java中LongAdder和AtomicLong有什么区别?

    福哥答案2020-10-18:#福大大架构师每日一题# 简单回答:AtomicLong是CAS操作.LongAdder是多个单元操作. 中级回答:AtomicLong 是基于 CAS 方式自旋更新的: ...

  7. 2021-12-23:每日温度。 请根据每日 气温 列表 temperatures ,请计算在每一天需要等几天才会有更高的温度。如果气温在这之后都不会升高,请在该位置用 0 来代替。 示例 1: 输

    2021-12-23:每日温度. 请根据每日 气温 列表 temperatures ,请计算在每一天需要等几天才会有更高的温度.如果气温在这之后都不会升高,请在该位置用 0 来代替. 示例 1: 输入 ...

  8. LeetCode 周赛 345(2023/05/14)体验一题多解的算法之美

    本文已收录到 AndroidFamily,技术和职场问题,请关注公众号 [彭旭锐] 提问. 往期回顾:LeetCode 双周赛第 104 场 · 流水的动态规划,铁打的结构化思考 周赛概览 T1. 找 ...

  9. Midjourney|文心一格prompt教程[基础篇]:注册使用教程、风格设置、参数介绍、隐私模式等

    Midjourney|文心一格prompt教程[基础篇]:注册使用教程.风格设置.参数介绍.隐私模式等 开头讲一下为什么选择Midjourney和文心一格,首先Midjourney功能效果好不多阐述: ...

  10. AcWing 3729. 改变数组元素

    给定一个空数组 V 和一个整数数组 a1,a2,-,an. 现在要对数组 V进行 n次操作. 第 i次操作的具体流程如下: 从数组 V尾部插入整数 0.    2.将位于数组 V末尾的 ai 个元素都 ...