EXCEL的xls和xlsx转换工具 已打包为EXE 提供源码
本帖最后由 xx10060 于 2023-8-18 11:47 编辑由于工作需要,在论坛中找到excel的转换工具,原帖https://www.52pojie.cn/forum.php?mod=viewthread&tid=1686635&highlight=xlsx%2B%D7%AA%2Bxls
https://attach.52pojie.cn//forum/202307/27/093550ma6b6llhamjzwweb.gif?l
可能是因为时间比较久了,工具不好用,根据作者提供的代码改造了一下。
重新打包了EXE,下载地址:https://wwmc.lanzoub.com/iSyow13ldcbc
现在我也把代码分享给大家,感兴趣的小伙伴可以继续改造,打包源码
from datetime import datetime
import PySimpleGUI as sg
import win32com.client as win32
import os
import sys
excel = win32.gencache.EnsureDispatch('Excel.Application')
def convert_file(file_name, output_format):
input_ext = os.path.splitext(file_name)[-1].lower()
if input_ext not in ['.xlsx', '.xls']:
return f'{file_name} 不支持的文件类型'
elif input_ext == output_format:
return f'{file_name} 当前文件类型无需转换'
try:
wb = excel.Workbooks.Open(file_name)
# 保存转换后的文件
new_file_name = os.path.splitext(file_name) + output_format
# 替换文件路径中的斜杠
new_file_name = new_file_name.replace("/", "\\")
wb.SaveAs(new_file_name, FileFormat=get_format(output_format))
wb.Close()
return f'转换成功:{file_name} 转换为 {output_format}'
except Exception as e:
excel.Application.Quit()
return f'【转换失败】:{file_name}'
def get_format(file_ext):
if file_ext == '.xls':
return 56
elif file_ext == '.xlsx':
return 51
def gui():
sg.theme('DarkBlue')
# 更换程序图标的文件路径
icon_path = './icon1.ico'
layout = [
,
,
[sg.Input(key='文件路径', size=(40, 1), font=('黑体', 12)),
sg.FilesBrowse('选择', file_types=(("Excel文件", "*.xlsx; *.xls"),), target='文件路径',
font=('黑体', 12), button_color=('white', '#00CED1'))],
[sg.Radio('xlsx转xls', '选择转换格式', key='xlsx_to_xls', default=True, font=('黑体', 14), enable_events=True),
sg.Radio('xls转xlsx', '选择转换格式', key='xls_to_xlsx', font=('黑体', 14), enable_events=True)],
[sg.Button('转换', key='转换', button_color=('white', '#00CED1'), size=(10, 1), font=('黑体', 14)),
sg.Button('清空', key='清空', size=(10, 1), font=('黑体', 14))],
]
window = sg.Window('文件格式转换工具.By.Eric.', layout, element_justification='center', resizable=True,
finalize=True, icon=icon_path)
while True:
event, values = window.read()
if event == sg.WIN_CLOSED:
excel.Application.Quit()
break
if event == '转换':
output_format = '.xls' if values['xlsx_to_xls'] else '.xlsx'
for i in values['文件路径'].split(';'):
print(convert_file(i, output_format))
excel.Application.Quit()
window['文件路径'].update('')
elif event == '清空':
window['文件路径'].update('')
window.FindElement('sg_output').Update("")
window.close()
if __name__ == '__main__':
gui() D:\anaconda3\python.exe C:\Users\Administrator\Desktop\原创力文档下载工具\EXCEL\EXCEL.py
Traceback (most recent call last):
File "C:\Users\Administrator\Desktop\原创力文档下载工具\EXCEL\EXCEL.py", line 2, in <module>
import PySimpleGUI as sg
ModuleNotFoundError: No module named 'PySimpleGUI'
进程已结束,退出代码1 wapjsx 发表于 2023-7-27 17:07
请问下大佬,为什么我不能直接运行python代码呢?
这部分代码是需要有依赖库的,估计你那些引用的依赖没有导致报错的,你可以用python的开发工具去运行这段代码,工具会帮你下载本地没有的依赖库 请问下大佬,为什么我不能直接运行python代码呢? wapjsx 发表于 2023-7-27 17:07
请问下大佬,为什么我不能直接运行python代码呢?
报错信息发一下 谢谢大佬分享。 wapjsx 发表于 2023-7-27 17:07
请问下大佬,为什么我不能直接运行python代码呢?
第一行datetime后边少了个回车 研究一下,谢谢 bin_chb 发表于 2023-8-3 13:07
第一行datetime后边少了个回车
感谢指正,已修改 请问是不是只能在win10以上运行,我的系统是win7,提示找不到相应的模块
这个厉害了,谢谢楼主的分享