吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 19464|回复: 170
收起左侧

[原创工具] 【写给女友的软件①】批量匹配软件(类似Vlookup函数)

    [复制链接]
wkdxz 发表于 2022-10-9 11:02
本帖最后由 wkdxz 于 2022-11-18 16:51 编辑

新软件,欢迎试用:【写给女友的软件③】微信消息文字整理软件 https://www.52pojie.cn/thread-1699365-1-1.html

软件功能:类似Vlookup函数(精确匹配模式),使用Python编写,使用PySimpleGui制作界面。
与Vlookup函数一样,只返回第一个匹配的结果。

2022-10-10更新:

  • 支持反向匹配功能
  • 支持多列数据作为数据源
  • 增加清空按钮

为什么有这个软件?
      女朋友的需求,她要把人员的序号对应名字,填进表格。我教她用vlookup函数,一教就会,一会就忘。过了两天,又有类似的问题要我帮忙处理。所以我写了这个软件,来帮助不会或者懒得写Vlookup函数的朋友


下载:https://wwt.lanzout.com/iUr5V0dukhvc 密码:gcg5
解压密码:52pojie

源码:https://www.52pojie.cn/thread-1698082-1-1.html

另一个【写给女友的软件②】,先处理,再匹配,效率更高。字符批量处理软件https://www.52pojie.cn/thread-1698009-1-1.html

软件界面:


Snipaste_2022-11-18_16-52-10.jpg

免费评分

参与人数 37吾爱币 +40 热心值 +33 收起 理由
123567a + 1 + 1 我很赞同!
yxdxf + 1 + 1 谢谢@Thanks!
zanzhifei + 1 + 1 我很赞同!
Nido + 1 + 1 鼓励转贴优秀软件安全工具和文档!
翻车鱼2333 + 1 谢谢@Thanks!
Qmomo + 1 + 1 我很赞同!
catoo1 + 1 谢谢@Thanks!
mingwudi + 1 + 1 其实挺有用的,对女朋友来说
apples1949 + 2 + 1 谢谢@Thanks!
zengluozhen + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
happyoil001 + 1 + 1 谢谢@Thanks!
qsuron + 1 + 1 有用!谢谢
Aunforgettable + 1 + 1 谢谢@Thanks!
xbdy + 1 我很赞同!
bsxhht + 1 + 1 我很赞同!
renjia + 1 谢谢@Thanks!
uyktyty + 1 + 1 谢谢@Thanks!
majuiong + 1 谢谢@Thanks!
tonydudu + 1 + 1 我很赞同!
o824 + 1 + 1 谢谢@Thanks!
zhang1836 + 1 + 1 我很赞同!
rogernash + 1 + 1 谢谢@Thanks!
fujingsitb + 1 + 1 谢谢@Thanks!
liheshang + 1 + 1 谢谢@Thanks!
lizebird + 1 热心回复!
orcinusorca + 1 + 1 我很赞同!
Jas818 + 1 + 1 谢谢@Thanks!
一场荒唐半生梦 + 1 + 1 谢谢@Thanks!
realma2014 + 1 + 1 我很赞同!
plwt + 2 + 1 我很赞同!
风之暇想 + 7 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
忆江南 + 1 + 1 我很赞同!
jefflo + 1 谢谢@Thanks!
又是馒头 + 1 + 1 鼓励转贴优秀软件安全工具和文档!
dengshichuan123 + 1 谢谢@Thanks!
蕤宾廿 + 1 + 1 我很赞同!
noplaya + 1 谢谢@Thanks!

查看全部评分

本帖被以下淘专辑推荐:

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

卓致文 发表于 2022-10-14 03:41
我教她用vlookup函数,一教就会,一会就忘。过了两天,又有类似的问题要我帮忙处理。

这个深有体会,我们都成了老婆公司的免费劳力
lzspain 发表于 2022-10-9 11:17
 楼主| wkdxz 发表于 2022-10-11 11:17
yxdxf 发表于 2023-5-29 11:30
a2523188267 发表于 2022-10-9 11:19
自己玩可以,实际用处不大

菜鸟还是很多的,用处很大。
tejiamao 发表于 2022-11-19 12:14
这个玩意省了我太多时间了,太强了
phyiscsdhl2020 发表于 2022-10-10 14:47

XLOOKUP更好用
 楼主| wkdxz 发表于 2022-10-10 12:10

有点简陋,如果你改得完善了,记得发我一份。

[Python] 纯文本查看 复制代码
from pyperclip import copy, paste
import PySimpleGUI as sg


def data_source_dic(shujuyuan, fenge='\t'):
    data_source = shujuyuan.strip().split('\n')
    if fenge not in data_source[0]:
        fenge = ' '
    data_dic = {}
    try:
        for i in data_source:
            if i := i.strip():
                k, v = i.split(fenge)
                if k not in data_dic:
                    data_dic[k.strip()] = v.strip()
        return data_dic
    except:
        return


def pipei(shujuyuan, daipipei):
    try:
        pipei_list = daipipei.split('\n')
        return [shujuyuan.get(i.strip(), '') for i in pipei_list]
    except:
        return


def gui():
    sg.theme('GrayGrayGray')  # 设置当前主题
    layout = [[
        sg.Frame(
            '数据源',
            layout=[
                [
                    sg.Multiline('', key='数据源', size=(26, 18)),
                ],
                [
                    sg.Button(' 粘 贴 ', key='粘数据源', pad=(8)),
                ],
            ],
            element_justification='center',
            pad=(5),
        ),
        sg.Frame(
            '待匹配',
            layout=[
                [
                    sg.Multiline('', key='待匹配', size=(18, 18)),
                ],
                [
                    sg.Button(' 粘 贴 ', key='粘待匹配', pad=(8)),
                ],
            ],
            element_justification='center',
            pad=(5),
        ),
        sg.Frame(
            '结果',
            layout=[
                [
                    sg.Multiline('',
                                 key='结果',
                                 size=(18, 18),
                                 background_color='#fffff7'),
                ],
                [
                    sg.Button(' 匹 配 ', key='执行匹配', pad=(8)),
                    sg.Button(' 复 制 ',
                              key='复制结果',
                              pad=(8),
                              button_color='#ffa631'),
                ],
            ],
            element_justification='center',
            pad=(5),
        ),
    ], [sg.Output(key='执行结果', size=(645, 6))]]

    # 创建展示窗口8
    window = sg.Window('匹配字符',
                       layout,
                       font=('微软雅黑', 10),
                       size=(650, 574),
                       element_justification='center').finalize()
    window['执行结果'].TKOut.output.config(wrap='word')

    # 事件循环并获取输入值
    while True:
        event, values = window.read()
        if not event:
            break

        jtb = '' if paste() else ',但是剪贴板为空!'

        if event == '粘数据源':
            window['数据源'].update(paste())
            print(f'粘贴数据源{jtb}')
        if event == '粘待匹配':
            window['待匹配'].update(paste())
            print(f'粘贴待匹配的数据{jtb}')
        if event == '执行匹配':
            print('执行匹配')
            if values['数据源'] and values['待匹配']:
                shujuyuan = data_source_dic(values['数据源'])
                pipei_list = pipei(shujuyuan, values['待匹配'])
                try:
                    if isinstance(pipei_list, list) and pipei_list:
                        window['结果'].update('\n'.join(pipei_list))
                except:
                    pass
        elif event == '复制结果':
            res = values['结果']
            if res.strip():
                len_res = len(res.split('\n'))
                copy(res)
                print(f'✔ 已复制 {len_res} 条数据')
            else:
                print('结果为空,没复制任何内容')

    window.close()


if __name__ == '__main__':
    gui()
0788cpl 发表于 2022-10-9 11:08
谢大佬分享
youcome 发表于 2022-10-9 11:10
必须支持,谢谢分享
xxl1039 发表于 2022-10-9 11:16
会玩。。
谢谢分享。
a2523188267 发表于 2022-10-9 11:19
自己玩可以,实际用处不大
莫小弟 发表于 2022-10-9 11:28
支持一下支持一下!
joseph6s 发表于 2022-10-9 11:31
谢谢分享
qj5156 发表于 2022-10-9 11:57
我喜欢用VBA解决问题
seawaycao 发表于 2022-10-9 12:08

感谢楼主无私分享!
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

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

GMT+8, 2024-12-24 10:53

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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