前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python-批处理.xlsx文件与.xls文件相互转换

Python-批处理.xlsx文件与.xls文件相互转换

原创
作者头像
青阳
修改2021-09-03 10:46:13
2.4K0
修改2021-09-03 10:46:13
举报
文章被收录于专栏:玩转云服务玩转云服务

由于最近在学习自动化生成测试报告,但在通过xlutils实现保留excel原格式情况下追加写入数据时,excel文件若为.xlsx文件会导致脚本无法运行。故需要实现.xlsx文件与.xls文件的相互转换

一、.xlsx文件转为.xls文件:

代码语言:txt
复制
# encoding: utf-8
from ctypes import *
import time
import win32com.client as win32
import os
def transform(parent_path,out_path):
    fileList = os.listdir(parent_path)  #文件夹下面所有的文件
    num = len(fileList)
    for i in range(num):
        file_Name = os.path.splitext(fileList[i])   #文件和格式分开
        if file_Name[1] == '.xlsx':
            transfile1 = parent_path+'\\'+fileList[i]  #要转换的excel
            transfile2 = out_path+'\\'+file_Name[0]    #转换出来excel
            excel=win32.gencache.EnsureDispatch('excel.application')
            pro=excel.Workbooks.Open(transfile1)   #打开要转换的excel
            pro.SaveAs(transfile2+".xls", FileFormat=56)  #另存为xls格式
            pro.Close()
            excel.Application.Quit()

if __name__=='__main__':
    path1=r"E:\untitled1\test_report_demo"  #待转换文件所在目录
    path2=r"E:\untitled1\test_data"  #转换文件存放目录
    transform(path1, path2)

二、.xls文件转为.xlsx文件:

代码语言:txt
复制
#encoding: utf-8
from ctypes import *
import time
import win32com.client as win32
import os
def transform(parent_path,out_path):
    fileList = os.listdir(parent_path)  #文件夹下面所有的文件
    num = len(fileList)
    for i in range(num):
        file_Name = os.path.splitext(fileList[i])   #文件和格式分开
        if file_Name[1] == '.xls':
            transfile1 = parent_path+'\\'+fileList[i]  #要转换的excel
            transfile2 = out_path+'\\'+file_Name[0]    #转换出来excel
            excel=win32.gencache.EnsureDispatch('excel.application')
            pro=excel.Workbooks.Open(transfile1)   #打开要转换的excel
            pro.SaveAs(transfile2 + ".xlsx", FileFormat=51)  # 另存为xlsx格式
            pro.Close()
            excel.Application.Quit()

if __name__=='__main__':
    path1=r"E:\untitled1\test_report_demo"  #待转换文件所在目录
    path2=r"E:\untitled1\test_data"  #转换文件存放目录
    transform(path1, path2)

在目录前加一个r的原因:

r是保持字符串原始值的意思,就是说不对其中的符号进行转义。因为windows下的目录字符串中通常有斜杠"",而斜杠在Python的字符串中有转义的作用。例如:\n表示换行如果路径中有\new就会被转义。加上r就是为了避免这种情况。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、.xlsx文件转为.xls文件:
  • 二、.xls文件转为.xlsx文件:
  • 在目录前加一个r的原因:
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档