当前位置:   article > 正文

python xls和xlsx互转_python xls转xlsx

python xls转xlsx

import win32com.client
import os
def xlsx_to_xls(fname, export_name, delete_flag=True):
“”"
将xlsx文件转化为xls文件
:param fname: 传入待转换的文件路径(可传绝对路径,也可传入相对路径,都可以)
:param export_name: 传入转换后到哪个目录下的路径(可传绝对路径,也可传入相对路径,都可以)
:param delete_flag: 转换成功后,是否删除原来的xlsx的文件,默认删除 布尔类型
:return: 无返回值
“”"
excel = win32com.client.DispatchEx(‘Excel.Application’)

excel.Visible = False
excel.DisplayAlerts = False
absolute_path = os.path.join(os.path.dirname(os.path.abspath(fname)), os.path.basename(fname))
save_path = os.path.join(os.path.dirname(os.path.abspath(export_name)), os.path.basename(export_name))
wb = excel.Workbooks.Open(absolute_path)
wb.SaveAs(save_path, FileFormat=56)  # FileFormat = 51 is for .xlsx extension
wb.Close()  # FileFormat = 56 is for .xls extension
excel.Application.Quit()
if delete_flag:
    os.remove(absolute_path)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

def xls_to_xlsx(fname, export_name, delete_flag=True):
“”"
将xlsx文件转化为xls文件
:param fname: 传入待转换的文件路径(可传绝对路径,也可传入相对路径,都可以)
:param export_name: 传入转换后到哪个目录下的路径(可传绝对路径,也可传入相对路径,都可以)
:param delete_flag: 转换成功后,是否删除原来的xlsx的文件,默认删除 布尔类型
:return: 无返回值
“”"
excel = win32com.client.DispatchEx(‘Excel.Application’)

excel.Visible = False
excel.DisplayAlerts = False
absolute_path = os.path.join(os.path.dirname(os.path.abspath(fname)), os.path.basename(fname))
save_path = os.path.join(os.path.dirname(os.path.abspath(export_name)), os.path.basename(export_name))
# os.path.join(export_name,os.path.basename(fname).split('.xls')[0])
wb = excel.Workbooks.Open(absolute_path)
wb.SaveAs(save_path, FileFormat=51)  # FileFormat = 51 is for .xlsx extension
print(wb.name)
wb.Close()  # FileFormat = 56 is for .xls extension
excel.Application.Quit()
if delete_flag:
    os.remove(absolute_path)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12

#测试语句

xlsx_to_xls(r’D:\BS\T7.xlsx’,r’D:\BS\T7.xls’, delete_flag=False)

xls_to_xlsx(r’D:\BS\T7.xls’,r’D:\BS\T77.xlsx’, delete_flag=False)

rootdir = r"D:\BS\test1"
name_list=os.listdir(rootdir)
print(name_list)
new_path=r’D:\BS\test2’
cnt=0
for name in name_list:
path=os.path.join(rootdir, name)
cnt+=1
# xls_to_xlsx(path,new_path+‘\’+str(name.split(‘.xls’)[0])+‘_’+str(cnt),False)
xls_to_xlsx(path, new_path + ‘\’ + str(name.split(‘.’)[0]), False)
print(‘本次共修改xls:’+str(cnt)+‘个’)

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

闽ICP备14008679号