工作需要,需要向xls文件里写入数据。由于xlrd\xlwt写入的数据不带格式,只好把xls模板先转为xlsx格式,用openpyxl批量写入完后再批量转为xls。

百度找的转换实例,实际应用时生成的xls文件打开总提示格式不一致或者干脆程序卡死。

为了解决这个问题,翻了半天资料。最终解决了,特此记录一下。

首先,我先把python升级到64位最新版,然后下载了win32的64位最新版。

其次,把office也换成了64位。

最后,在代码中加入了

xlApp.Visible = False
xlApp.DisplayAlerts = False

至此,在转换xls文件时,终于不会卡死,可以成功转换了。

以下是代码

.xlsx文件转为.xls文件:

import win32com.client as win32def transform_xls(_input_path, _output_path):# 需要转换的文件路径input_path = _input_path# 转换完后输出的路径output_path = _output_path# 遍历需要转换的文件夹下面所有的文件file_list = os.listdir(input_path)# 获取遍历完的文件数量num = len(file_list)# 打印文件数量print(num)# 遍历文件for i in range(num):# 将文件和格式分开file_name = os.path.splitext(file_list[i])# 打印分开后的列表print(file_name)# 当遍历到的文件格式为'.xlsx'时if file_name[1] == '.xlsx':# 得到要转换的文件transfile1 = input_path + file_list[i]# 转换完需要输出的文件transfile2 = output_path + file_name[0]# 打印要转换的文件print('transfile1:'+ str(transfile1))# 使用win32操作excelxlApp = win32.gencache.EnsureDispatch('Excel.Application')# 后台运行, 不显示,不警告# 不写这个会卡死……注意Python、win32需要保持一致。比如我的都是64位的xlApp.Visible = FalsexlApp.DisplayAlerts = False# 打开要转换的excelxls = xlApp.Workbooks.Open(transfile1)# 将需要转换的excel另存为xls格式。 56为xlsxls.SaveAs(transfile2 + '.xls', FileFormat=56)# 关闭excel文件xls.Close()# 退出进程xlApp.Application.Quit()if __name__=='__main__':#待转换文件所在目录input_path = "E:\\Program Files\\桌面\\intput\\"#转换文件存放目录output_path = "E:\\Program Files\\桌面\\intput\\output\\"transform_xls(input_path , output_path)

参考资料:

Python-批处理.xlsx文件与.xls文件相互转换
https://blog.csdn.net/zkw_1998/article/details/103972386

XlFileFormat 枚举 (Excel) | Microsoft Docs
https://docs.microsoft.com/zh-cn/office/vba/api/excel.xlfileformat

python转xlsx为xls 或重新保存xls
https://blog.csdn.net/nongcunqq/article/details/113369533

python-win32操作excel的一些特殊功能 - Maple_feng - 博客园 https://www.cnblogs.com/angelyan/p/13094204.html

Python 批量将.xlsx文件转为.xls文件相关推荐

  1. python怎么将json文件转为xls文件_基于python实现把json数据转换成Excel表格

    json数据: [{"authenticate":-99,"last_ip":"156.2.98.429","last_time& ...

  2. python: xlsx表格转为csv文件

    代码+注释 绝对详细的xlsx表格转为csv文件过程 : D # coding = utf-8 import os import pandas as pd import csv from openpy ...

  3. python转csv_python脚本如何将Excel文件转为csv文件(代码)

    本篇文章给大家带来的内容是关于python脚本如何将Excel文件转为csv文件(代码),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助.#!/usr/bin/env python __ ...

  4. python csv转excel_将Excel文件转为csv文件的python脚本

    将Excel文件转为csv文件的python脚本 #!/usr/bin/env python __author__ = "lrtao2010" ''' Excel文件转csv文件脚 ...

  5. 使用Python批量筛选上千个Excel文件中的某一行数据并另存为新Excel文件(下篇)

    点击上方"Python爬虫与数据挖掘",进行关注 回复"书籍"即可获赠Python从入门到进阶共10本电子书 今 日 鸡 汤 野火烧不尽,春风吹又生. 大家好, ...

  6. 批量将txt文件转为excel文件

    python萌新,记录一下,自己做项目时遇到需批量将txt文件转为excel文件. 代码如下: `# coding:utf-8 import pandas as pd import os def ge ...

  7. 【windwos bat】批量把windows下的wav文件转为raw文件

    借助工具sox,可以批量将wav文件转为raw文件. @echo off set work_path=recordings set raw_path=raw SET mypath=%~dp0mkdir ...

  8. python批量复制文件问题,python 批量复制不同目录下的文件

    python 批量复制不同目录下的文件 #!/usr/bin/env python #coding=UTF-8 #author aping import os,sys,shutil,time impo ...

  9. Python将txt文件转为json文件

    python将txt文件转为json文件 txt文件中内容: [*]www.xiaoyang.1 [*]www.xiaoyang.12 [*]www.xiaoyang.135 [*]www.xiaoy ...

最新文章

  1. Python 爬虫 58同城
  2. 一个 Linux 上分析死锁的简单方法
  3. 全国计算机等级考试题库二级C操作题100套(第35套)
  4. IDEA:com.intellij.execution.ExecutionException: not found for the web module.
  5. 江西省一级计算机考试试题,2江西省计算机一级考试试题
  6. CVE-2022-22965 漏洞分析,安全问题早发现
  7. Python基础(map/reduce)
  8. java rx_史上最浅显易懂的RxJava入门教程
  9. Fedora 13 正确安装 VirtualBox 3.2.x 的 步骤
  10. 使用Visual Studio SDK制作GLSL词法着色插件
  11. 在.NET 对XML的一些基本操作
  12. 6-1 多态性与虚函数
  13. 小白如何上手产品经理
  14. 差分探头和隔离探头有什么区别
  15. anaconda conda环境管理命令
  16. 测试开发工作者日记:2020.67-6.9
  17. Kaldi声学模型训练
  18. java 下载另存为_java中如何实现点击下载出现另存为的对话框
  19. ceph monitor 选举leader和peon的过程
  20. 使用欧镭2D雷达ROS驱动

热门文章

  1. AD那些事 切割板子形状,线的弧度转换
  2. 2. linux默认的系统管理员账号是,2019.10第二周 王俊懿_Linux
  3. AutoLine开源平台发布
  4. Ext JS从零开始之二
  5. <医学断层图像三维重建面绘制算法的研究>——第一遍阅读
  6. 关于Android 手机 开机速度的优化
  7. html页面比对插件,html页面缩放插件
  8. python人工智能方向面试准备_人工智能入门学习路线及就业面试
  9. PPmoney基于Kubernetes的DevOps实践
  10. 初学量子力学,读读这本《见微知著》,会豁然开朗