当前位置:   article > 正文

Python 批量将.xlsx文件转为.xls文件_python xlsx转xls

python xlsx转xls

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

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

 

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

 

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

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

最后,在代码中加入了

  1. xlApp.Visible = False
  2. xlApp.DisplayAlerts = False

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

以下是代码

.xlsx文件转为.xls文件:

 

  1. import win32com.client as win32
  2. def transform_xls(_input_path, _output_path):
  3. # 需要转换的文件路径
  4. input_path = _input_path
  5. # 转换完后输出的路径
  6. output_path = _output_path
  7. # 遍历需要转换的文件夹下面所有的文件
  8. file_list = os.listdir(input_path)
  9. # 获取遍历完的文件数量
  10. num = len(file_list)
  11. # 打印文件数量
  12. print(num)
  13. # 遍历文件
  14. for i in range(num):
  15. # 将文件和格式分开
  16. file_name = os.path.splitext(file_list[i])
  17. # 打印分开后的列表
  18. print(file_name)
  19. # 当遍历到的文件格式为'.xlsx'时
  20. if file_name[1] == '.xlsx':
  21. # 得到要转换的文件
  22. transfile1 = input_path + file_list[i]
  23. # 转换完需要输出的文件
  24. transfile2 = output_path + file_name[0]
  25. # 打印要转换的文件
  26. print('transfile1:'+ str(transfile1))
  27. # 使用win32操作excel
  28. xlApp = win32.gencache.EnsureDispatch('Excel.Application')
  29. # 后台运行, 不显示,不警告
  30. # 不写这个会卡死……注意Python、win32需要保持一致。比如我的都是64位的
  31. xlApp.Visible = False
  32. xlApp.DisplayAlerts = False
  33. # 打开要转换的excel
  34. xls = xlApp.Workbooks.Open(transfile1)
  35. # 将需要转换的excel另存为xls格式。 56为xls
  36. xls.SaveAs(transfile2 + '.xls', FileFormat=56)
  37. # 关闭excel文件
  38. xls.Close()
  39. # 退出进程
  40. xlApp.Application.Quit()
  41. if __name__=='__main__':
  42. #待转换文件所在目录
  43. input_path = "E:\\Program Files\\桌面\\intput\\"
  44. #转换文件存放目录
  45. output_path = "E:\\Program Files\\桌面\\intput\\output\\"
  46. 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

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/神奇cpp/article/detail/888842
推荐阅读
相关标签
  

闽ICP备14008679号