吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 4479|回复: 30
收起左侧

[Python 转载] xls和xlsx互相转换工具 已打包为EXE 提供源码下载

   关闭 [复制链接]
wkdxz 发表于 2022-9-11 11:48
本帖最后由 wkdxz 于 2022-9-11 12:26 编辑

把之前的代码转为Gui,一个新的练手作,灵感来自:https://www.52pojie.cn/thread-1686588-1-1.html

成品链接:  
xls批量转换为xlsx.exe  https://www.aliyundrive.com/s/wmAxnU15qdb 提取码: 5gh5

低版本转高版本源码【低转高源码.py】 xls2xlsx 完整源码.7z (1.01 KB, 下载次数: 159)


顺带做了个 XLSX转XLS工具,反向转,送给需要的兄弟【高转低源码.py】   【反向转】xlsx2xls.7z (1017 Bytes, 下载次数: 133)
EXE成品: xlsx2xls【高版本转低版本】.exe  https://www.aliyundrive.com/s/Mjno4rr535F 提取码: fa63



操作演示:
screenshots.gif


假装解释一下源码:

导入库:
[Python] 纯文本查看 复制代码
1
2
3
import win32com.client as win32
import os
import PySimpleGUI as sg


转换:
[Python] 纯文本查看 复制代码
01
02
03
04
05
06
07
08
09
10
11
12
def to_xlsx(file_name):
    houzhui = '.xls'
    if os.path.splitext(file_name)[-1].lower() != houzhui:
        print(f'{file_name} 后缀不是 {houzhui}')
        return
    try:
        wb = excel.Workbooks.Open(file_name)
        wb.SaveAs(f"{file_name}x", FileFormat=51#xls format:56
        wb.Close()
        return f'转换成功:{file_name}'
    except Exception as e:
        return f'【转换失败】:{file_name}'


GUI:
[Python] 纯文本查看 复制代码
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
def gui():
    layout = [[
        sg.Input(key='文件路径'),
        sg.FilesBrowse('选择xls文件',
                       file_types=(("xls文件", "*.xls"), ),
                       target='文件路径',
                       key='选择')
    ],
              [
                  sg.Button('转换',
                            key='转换',
                            button_color='red',
                            enable_events=True),
                  sg.Button('清空', key='清空', enable_events=True),
                  sg.Text('', key='提示', text_color='yellow')
              ]]
    window = sg.Window('xls转xlsx工具  -  by [url=mailto:wkdxz@52pojie.cn]wkdxz@52pojie.cn[/url]',
                       layout,
                       font=('微软雅黑', 12))
    while True:
        event, values = window.read()
        if not event:
            break
        if event == '转换':
            tip = ['【操作完成,转换成功的xlsx文件保存在原目录下】\n']
            for i in values['文件路径'].split(';'):
                tip.append(to_xlsx(i))
                excel.Application.Quit()
            window['文件路径'].update('')
            sg.popup('\n'.join(tip), font=('微软雅黑', 10))
        elif event == '清空':
            window['文件路径'].update('')
 
    window.close()






免费评分

参与人数 6吾爱币 +14 热心值 +5 收起 理由
苏紫方璇 + 7 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!
S.K + 1 + 1 谢谢@Thanks!
yanglinman + 1 谢谢@Thanks!
冬天冷了多穿点 + 1 + 1 我很赞同!
pwp + 3 + 1 这种舍得发源码的贴子必须加鸡蛋
zhanglei1371 + 1 + 1 谢谢@Thanks!

查看全部评分

本帖被以下淘专辑推荐:

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

simonkey8 发表于 2024-5-17 16:13
请教一下,这个是什么原因?

raceback (most recent call last):
  File "xls2xlsx.py", line 65, in <module>
  File "xls2xlsx.py", line 55, in gui
  File "win32com\client\__init__.py", line 474, in __getattr__
  File "win32com\client\__init__.py", line 467, in _ApplyTypes_
pywintypes.com_error: (-2147418111, '被呼叫方拒绝接收呼叫。', None, None)

谢谢!
simonkey8 发表于 2024-5-17 16:12
raceback (most recent call last):
  File "xls2xlsx.py", line 65, in <module>
  File "xls2xlsx.py", line 55, in gui
  File "win32com\client\__init__.py", line 474, in __getattr__
  File "win32com\client\__init__.py", line 467, in _ApplyTypes_
pywintypes.com_error: (-2147418111, '被呼叫方拒绝接收呼叫。', None, None)
losingstars 发表于 2022-9-11 11:54
andyle 发表于 2022-9-11 13:11
感谢分享吧,早个几年还能有用,现在完全没有必要了
LuckyClover 发表于 2022-9-11 13:15
感谢大佬分享
头像被屏蔽
hzyhzjjzh 发表于 2022-9-11 13:24
提示: 作者被禁止或删除 内容自动屏蔽
zuoanmu 发表于 2022-9-11 14:15
这是干嘛用的~
 楼主| wkdxz 发表于 2022-9-11 14:37

excel批量文件转换工具
ycyanwen 发表于 2022-9-11 15:31
这款工具很实用。谢谢楼主分享。。。
放羊的狼 发表于 2022-9-11 16:02
看到标题后就猜到是saveas,有遇到过另存后文件损毁的情况,改回原后缀就行。还有另一个问题,xls转xlsx无所谓,xlsx如果超出65536行或者256列呢?
lazhou 发表于 2022-9-11 16:08
谢谢分享!
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2025-4-23 03:46

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表