吾爱破解 - LCG - LSG |安卓破解|病毒分析|www.52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 31759|回复: 367
收起左侧

[Windows] 【Python自制软件】什么?领导要我手工录入1000条数据到系统?

    [复制链接]
d8349565 发表于 2020-12-12 22:46
本帖最后由 d8349565 于 2020-12-12 23:03 编辑

“专业的IT人员不做繁琐的日常文件管理工作,专业的白领也负担不起软件定制与维护”
    以上大概就是我开始自学Python编程的原因吧!
-----------------------------------------------------------------------------------------------------------------------------------------------
其实标题并不夸张,上个月我确实录入了4960条单据到公司内的系统,原因是临时新增的模块,需要录入初始化数据,IT反馈没办法一次性导入,所以就有了今天这个帖子。




软件介绍:
    公司系统近期新增一个业务模块,项目进度较紧凑,大量初始化数据需要录入,多次询问了公司IT组,反馈无法办理一次性导入,只能手工录入。
无奈之下,通过百度搜索学习,“千辛万苦”找到了应对思路,才制作这个软件,实现自动录入系统数据功能。


附件总览:
image.png

设计思路及流程:
  • 从《数据源》Excel表格中获取所有需要录入的数据“data”;
  • 从“data”中逐一获取每行数据;(注明:每行数据对应系统中一个单据所需要填写的项目信息)
  • 从每行数据中逐一获取单个数据;
  • 将单个数据复制到系统的剪切板;
  • 获取公司系统单据对应项目填写位置在电脑屏幕上的坐标;
  • 模拟鼠标点击操作,激活公司系统文本填写框内;
  • 模拟键盘Ctrl+V操作,将单个数据粘贴只公司系统文本填写框内;
  • 模拟鼠标点击操作,点击办理下一个单据。


以上循环

假装以下为系统单据界面:
image.png

数据源:
image.png


手工操作录入:
试着像这样手工录入了几十个单据,感觉要崩溃!!!
1.gif

使用方法:
1、打开附件中的这个软件获取鼠标实时坐标;

image.png
2、将鼠标移至输入框后,获取XY坐标值,输入到txt文本中;
image.png
image.png
特别注意:【应用坐标】对应的是以下坐标:
image.png

3、打开exe应用,选择数据源,即可开始录入数据:
2.gif


Python源码:


[Python] 纯文本查看 复制代码
import pyperclip
import pyautogui
import pandas as pd
import easygui as g

pyautogui.FAILSAFE =True           # 如果出错,将鼠标移至屏幕左上角可停止程序

#--------------------------------------选择文件,并清洗数据(因为示例文件的数据相对简单,谈不上清洗)
path=g.fileopenbox(msg='')
data=pd.read_excel(path,header=0)
data = data.iloc[:, 1:5]   #选择2-5列
[m, n] = data.shape
print(data)
#--------------------------------------设置各项目在屏幕上的坐标数值(x,y)
with open('信息补充.txt', 'r', encoding='utf-8') as t:
    txt = t.readlines()
    def zuobiao(i):
        x=txt[i].split("=")[-1].strip().split(",")[0]
        y=txt[i].split("=")[-1].strip().split(",")[1]
        a=(int(x),int(y))
        return a
应用坐标 = zuobiao(0)
数据输入坐标1 = zuobiao(1)
数据输入坐标2 = zuobiao(2)
数据输入坐标3 = zuobiao(3)
数据输入坐标4 = zuobiao(4)
按钮坐标 = zuobiao(5)
print(应用坐标)
print(数据输入坐标1)
# 应用坐标=(807,1073)      # 应用图标位置
# 数据输入坐标1=(560,332)   # 项目A
# 数据输入坐标2=(930,331)   # 项目B
# 数据输入坐标3=(556,456)   # 项目C
# 数据输入坐标4=(932,539)   # 项目D
# 按钮坐标=(1168,332)      # 按钮

#--------------------------------------函数设置

def 输入(数据输入坐标,第几个数据,一行数据):
    pyperclip.copy(一行数据[第几个数据])   #将数据复制到剪贴板
    pyautogui.click(数据输入坐标)
    pyautogui.hotkey('ctrl','v')
    # print(一行数据[第几个数据])

def main ():
    pyautogui.PAUSE = 0.3
    pyautogui.click(应用坐标)
    for i in range(0,m):
        一行数据=data.loc[i]              #   选择某一行数据
        # print(一行数据)
        输入(数据输入坐标1,0,一行数据)      #   选择第1个数据
        输入(数据输入坐标2,1,一行数据)      #   选择第2个数据
        输入(数据输入坐标3,2,一行数据)      #   选择第3个数据
        输入(数据输入坐标4,3,一行数据)
        pyautogui.click(按钮坐标)


main ()






下载链接:
大于100M,蓝奏云不能上传了
链接: https://pan.baidu.com/s/1780NStS05qbkQ_qeFZ6LyQ 提取码: h2gj 复制这段内容后打开百度网盘手机App,操作更方便哦
链接:https://pan.xunlei.com/s/VMOMPbXY5IbSVKKozzxIUJmXA1 提取码:jh5d


补充:
以下是我用Notion整理的关于pandas模块的笔记,欢迎指导!
https://www.notion.so/Pandas-64b1f4e594304fb2bc7450ebd8aa4385
image.png



image.png

免费评分

参与人数 135吾爱币 +122 热心值 +122 收起 理由
abuqimo + 1 + 1 热心回复!
sexyback_123 + 1 热心回复!
绝境守护者 + 1 + 1 热心回复!
DreamScape + 1 + 1 用心讨论,共获提升!
leenok + 1 + 1 用心讨论,共获提升!
dking18 + 1 + 1 我很赞同!
stts2008 + 1 谢谢@Thanks!
吾爱破解223 + 1 + 1 我很赞同!
喵呜酸奶冰 + 1 热心回复!
cylcl12 + 1 + 1 我很赞同!
一十八 + 1 谢谢@Thanks!
周章章 + 1 + 1 先赞一个,我想要一次复制20行数据,粘贴的时候按顺序粘贴20次/行数据,这.
shy197501 + 1 + 1 谢谢@Thanks!
Vito-ds + 1 + 1 鼓励转贴优秀软件安全工具和文档!
q200492sg + 1 我很赞同!
aa6592596 + 1 + 1 谢谢@Thanks!
marione + 1 + 1 感谢提供思路
jacksoon + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
Allenlu + 1 + 1 谢谢@Thanks!
xinhuyan + 1 + 1 我很赞同!
lihong9639 + 1 + 1 用心讨论,共获提升!
小北北 + 1 + 1 我很赞同!
M不晓 + 1 + 1 用心讨论,共获提升!
ansonl + 1 + 1 谢谢@Thanks!
simple32 + 1 + 1 用心讨论,共获提升!
lnyujun + 1 + 1 谢谢@Thanks!
swz7852151 + 1 + 1 我很赞同!
xukai1996 + 1 + 1 我很赞同!
TWGDH + 1 + 1 用心讨论,共获提升!
萌新与小白 + 1 + 1 妙啊
jeehom + 1 + 1 谢谢@Thanks!
z2740 + 1 + 1 谢谢@Thanks!
Dearving + 1 + 1 鼓励转贴优秀软件安全工具和文档!
fbq12388 + 1 + 1 热心回复!好基友
358463121 + 2 + 1 鼓励转贴优秀软件安全工具和文档!
青叶毛毛虫 + 1 + 1 我很赞同!
wo952512065 + 1 + 1 谢谢@Thanks!
xiaodu7070 + 1 + 1 鼓励转贴优秀软件安全工具和文档!
svsou + 1 鼓励转贴优秀软件安全工具和文档!
leinuo + 1 + 1 谢谢@Thanks!
chinasongziming + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
paul24 + 1 + 1 我很赞同!
liu1913 + 1 我很赞同!
wq811120823 + 1 谢谢@Thanks!
D调的小5 + 1 + 1 谢谢@Thanks!
soxfer + 1 + 1 谢谢@Thanks!
pojiecainiao + 1 + 1 谢谢@Thanks!
小宙 + 1 + 1 谢谢@Thanks!
chichi32 + 1 + 1 我很赞同!
什么也不懂i + 1 鼓励转贴优秀软件安全工具和文档!
z_more + 1 + 1 热心回复!
逆天命666 + 1 + 1 热心回复!
与阳言者 + 1 谢谢@Thanks!
liubidahua + 1 + 1 可以考虑绑定窗口后台操作,同时拾图拾色相对坐标。
王星星 + 1 + 1 谢谢@Thanks!
AI_Sunshine + 1 + 1 谢谢@Thanks!
Absinthe + 1 + 1 感同身受啊!以前系统刚开发时我们也经历过~
sumuzhei + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
红尘氵梦 + 1 + 1 我很赞同!
夏日已末 + 1 + 1 顶楼主一个,支持原创,又干掉了一个无聊的事
wsdyfd + 1 + 1 这个必须加分
schedule + 1 谢谢@Thanks!
5151diy + 1 + 1 我很赞同!
暗夜揽月 + 1 + 1 用心讨论,共获提升!
91mumu + 1 + 1 谢谢@Thanks!
owenlrj + 1 + 1 我很赞同!
szllw + 1 VBA不好用吗?非要用PY
久住飞鸟 + 1 + 1 用心讨论,共获提升!
zpzhao3015 + 1 + 1 谢谢@Thanks!减轻了大量重复操作的压力
passtoworld + 1 + 1 鼓励转贴优秀软件安全工具和文档!
aoi + 1 看了一下录入过程,不是可以用按键精灵吗?
Dragonsh + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
念夕空 + 1 + 1 我很赞同!
两三年的分别 + 1 + 1 谢谢@Thanks!
onmark + 1 + 1 这种数据直接导入后台数据库就行了,不会的IT可以直接下岗了
牧濑伊莉雅 + 1 + 1 谢谢@Thanks!
tianjin555 + 1 + 1 热心回复!
ytmf12138 + 1 用心讨论,共获提升!
yangangel + 1 用心讨论,共获提升!
路飞飞飞飞 + 1 + 1 谢谢@Thanks!
maxzjs + 1 我很赞同!
Tulinzero + 1 + 1 我很赞同!
karson + 1 + 1 鼓励转贴优秀软件安全工具和文档!
boge07 + 1 + 1 用心讨论,共获提升!
娟然俊逸 + 1 + 1 谢谢@Thanks!很有用谢谢!
nnrainbow + 1 + 1 谢谢@Thanks!
adsl25 + 1 + 1 谢谢@Thanks!
AlamutSoldier + 1 + 1 好活
a5228172 + 1 + 1 热心回复!
aikexue + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
pxhzai + 2 126楼不限速 踢我上去
0797man + 1 + 1 我很赞同!
monphylin + 1 + 1 我很赞同!
zsb139 + 1 + 1 我很赞同!
yinjianliang220 + 1 + 1 我很赞同!
zach14c + 1 谢谢@Thanks!
ronald163 + 1 + 1 谢谢@Thanks!
talent136168 + 1 我很赞同!
yenbi + 1 + 1 谢谢@Thanks!
低调小透明 + 1 谢谢@Thanks!

查看全部评分

本帖被以下淘专辑推荐:

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

Kristine_He 发表于 2020-12-13 10:11
楼主的创作精神十分可佳,在几年前我是用按键精灵实现的,按键精灵也可以读取电子表格,这是按键精灵读取电子表格的脚本,
Call Plugin.Office.OpenXls("C:\测试.xls")
//下面这句是向Excel文档工作表(1)单元格(1, 1)读出内容存入(Text)变量
Text = Plugin.Office.ReadXls(1, 1, 1)
//下面这句是关闭Excel文档工作表
Call Plugin.Office.CloseXls()
MessageBox "读取到的单元格内容是:" & Text

如果说ERP系统是BS架构,可以用网络爬虫的技术模拟提交数据,速度比点鼠标快.
批量导入数据到后台数据库IT部门一般是不做的,第一,这样做会绕过ERP程序对金额,经营范围,数据合法性的检验,难以保证ERP数据的有效性,合法性..  第二,ERP对前台操作一般都有日志记录,就是记录几点几分,哪个人到哪个界面做什么操作.后台导入数据库则不会生成这样的记录.
如果经常频繁需要批量的录入太多数据,可以找其他部门商量,有没有必要做这样的管理.或者报需求给IT部门让他们开发批量导入的功能,提高公司的管理效率.

免费评分

参与人数 10吾爱币 +9 热心值 +9 收起 理由
superhb + 1 + 1 热心回复!
wsk0722 + 1 + 1 按键精灵学习过,不精通
358463121 + 1 + 1 我很赞同!
svsou + 1 用心讨论,共获提升!
vsnic + 1 + 1 我很赞同!
hpoooo + 1 我很赞同!
Eilliem + 1 + 1 我很赞同!
jixunhu + 1 + 1 我很赞同!
d8349565 + 1 + 1 我很赞同!
悼文吟诵 + 1 + 1 我很赞同!

查看全部评分

ciker_li 发表于 2020-12-13 07:41
zxh94 发表于 2020-12-14 10:36
像这种情况,作为IT部门的我一般会根据客户需求做Excel批量导入
fanvalen 发表于 2020-12-13 00:38
py可以直接操作Excel表的
 楼主| d8349565 发表于 2020-12-12 23:00
loa123 发表于 2020-12-12 22:55
我觉得貌似按键精灵也能搞。。(手动狗头)

部分代码和按键精灵效果一样,但是按键精灵不能读取Excel数据,只能模拟复制粘贴,相当于每一个数据都需要复制一次。

如果一条单据
手工录入需要30s
按键精灵估计要15s左右
这个代码差不多4s左右
喝杯酒吧 发表于 2020-12-16 18:40
今天刚露脸,出来支持一下
不忘记你的眼睛 发表于 2020-12-13 00:41
cyberim 发表于 2020-12-12 23:23
楼主,我想在一堆xml或txt里查找特定的词语,并且也会显示那个词语所在的xml或txt文件在哪。有相关工具吗

windows自带的搜索功能好像也支持这个;
image.png

免费评分

参与人数 1吾爱币 +1 收起 理由
cyberim + 1 我很赞同!

查看全部评分

singledog 发表于 2020-12-30 14:11
感觉还是用sql直接在excel里面写脚本然后导入要快得多。不过前台录入有个好处就是数据都经过校验了导完就可以马上用了,后台导入容易导入奇怪格式的数据,一般导完还得检查和清理一遍

免费评分

参与人数 1吾爱币 +1 热心值 +1 收起 理由
d8349565 + 1 + 1 热心回复!

查看全部评分

Oo胖大海 发表于 2020-12-22 10:07
虽然看不太懂,但是还是感觉很高端。以后有机会学习下
aqtd2 发表于 2020-12-18 13:16
出来晚了,我以前填ui界面时用的au3写代码也方便,后来搞成网页了,又还有框架,就比较棘手,调试太麻烦了就放弃了,还是水平不够
loa123 发表于 2020-12-12 22:55
我觉得貌似按键精灵也能搞。。(手动狗头)
cookielb 发表于 2020-12-12 23:09
按键精灵也可以后台读取EXCEL文件,有个办公文档插件
ppp383838 发表于 2020-12-12 23:20
按键精灵更简单啊
sununs 发表于 2020-12-12 23:22
支持下楼主,工作中确实是这样的,好多时候需要自己动手
cyberim 发表于 2020-12-12 23:23
楼主,我想在一堆xml或txt里查找特定的词语,并且也会显示那个词语所在的xml或txt文件在哪。有相关工具吗
老东东2019 发表于 2020-12-12 23:26
鼓励一下,估计老板给你加薪了
ouwei_bt 发表于 2020-12-12 23:30
这个可以   有点像按键精灵               
agendafailure 发表于 2020-12-12 23:37
只有我们支持楼主,加薪什么的是不存在的
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则 提醒:禁止复制他人回复等『恶意灌水』行为,违者重罚!

快速回复 收藏帖子 返回列表 搜索

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

GMT+8, 2024-5-21 01:20

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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