吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 4787|回复: 26
收起左侧

[Python 转载] OA公文处理系统自动处理

  [复制链接]
yidaiyeer757 发表于 2022-3-24 15:23
本帖最后由 yidaiyeer757 于 2022-3-24 15:30 编辑

OA公文处理系统,办公室的收文处理大概都是这么个流程,收文,然后录入收文簿,然后将收文薄传到OA上,本工具是将收文薄的数据直接自动填进oa和WebOffice插件,利用py的selenium进行浏览器操作。
from time import sleep
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
from PyQt5.Qt import *
import sys
import win32clipboard as wc
import win32con
import openpyxl
import mouse
import pynput

def setCopyTxet(strs):  # 设置写入粘贴板函数
    wc.OpenClipboard()  # 打开粘贴板
    wc.EmptyClipboard()  # 清空粘贴板
    wc.SetClipboardData(win32con.CF_UNICODETEXT, strs)  # 写入粘贴板
    wc.CloseClipboard()  # 关闭粘贴板

chrome_options = Options()
options = webdriver.ChromeOptions()
options.debugger_address = "127.0.0.1:9222"
chrome_options.add_experimental_option("debuggerAddress", "127.0.0.1:9222")
chrome_driver = "C:\Program Files\Google\Chrome\Application\chromedriver.exe"  # 指定自己的chromedriver路径
driver = webdriver.Chrome(chrome_driver, chrome_options=chrome_options)

#创建一个应用程序对象

class mywindow(QWidget):
    def __init__(self):
        '''=========窗口代码开始=========='''
        super(mywindow, self).__init__()
        self.window=QWidget()                    #创建窗口对象
        self.window.setWindowTitle("")           #窗口名字
        self.window.resize(200,100)              #改变窗口大小
        self.window.move(400,200)                #移送窗口位置
        self.window.setWindowFlags(Qt.WindowStaysOnTopHint)
        self.bt()
        self.ted()
        '''=========窗口代码结束=========='''
        self.window.show()
    def btevt(self):
        if self.tedd.toPlainText() != None:
            driver.get("http://36.134.194.224:8098/admin/persion/dispatch/index")
            path = "C:\\Users\\Administrator\\Desktop\\2020收文薄2022.1.23备份.xlsx"
            sleep(1)
            driver.find_elements_by_class_name("layui-admin-iframe")[0].click()  # 点击收文处理笺

            workbook = openpyxl.load_workbook(path)  # 打开表格
            shenames = workbook.get_sheet_names()  # 获取表格所有子表名
            worksheet = workbook.get_sheet_by_name(shenames[0])  # 读取子表
            a = worksheet["C" + self.tedd.toPlainText()].value
            b = worksheet["d" + self.tedd.toPlainText()].value
            c = worksheet["A" + self.tedd.toPlainText()].value
            d = self.tedd.toPlainText()
            e = worksheet["i" + self.tedd.toPlainText()].value

            driver.find_elements_by_class_name("layui-input")[0].click()
            driver.find_elements_by_class_name("layui-input")[0].send_keys(a)

            driver.find_elements_by_class_name("layui-input")[1].click()
            driver.find_elements_by_class_name("layui-input")[1].send_keys(b)

            driver.find_elements_by_class_name("layui-input")[2].click()
            driver.find_elements_by_class_name("layui-input")[2].send_keys(c)

            driver.find_elements_by_class_name("layui-input")[4].click()
            driver.find_elements_by_class_name("layui-input")[4].send_keys(d)

            driver.find_elements_by_class_name("layui-btn")[0].click()

            sleep(1)
            '''====鼠标事件===='''
            ctr = pynput.mouse.Controller()
            mouse.move(766, 190)  # 之鼠标位置
            ctr.press(pynput.mouse.Button.left)  # 按下
            ctr.release(pynput.mouse.Button.left)  # 弹起
            sleep(5)
            # mouse.click()               #点击
            # keyboard.hook(lambda x: print(x))  #匿名函数 调用直接销毁

            ctrj = pynput.keyboard.Controller()
            '''=====单位======'''
            setCopyTxet(a)
            mouse.move(520, 509)
            ctr.press(pynput.mouse.Button.left)
            ctr.release(pynput.mouse.Button.left)
            ctrj.press(pynput.keyboard.KeyCode.from_vk(17))
            ctrj.press('v')
            ctrj.release(pynput.keyboard.KeyCode.from_vk(17))
            ctrj.release('v')
            sleep(0.2)
            '''====文件名======'''
            setCopyTxet(b)
            mouse.move(660, 660)
            ctr.press(pynput.mouse.Button.left)
            ctr.release(pynput.mouse.Button.left)
            ctrj.press(pynput.keyboard.KeyCode.from_vk(17))
            ctrj.press('v')
            ctrj.release(pynput.keyboard.KeyCode.from_vk(17))
            ctrj.release('v')
            sleep(0.2)
            '''=====文件号======'''
            setCopyTxet(c)
            mouse.move(770, 510)
            ctr.press(pynput.mouse.Button.left)
            ctr.release(pynput.mouse.Button.left)
            ctrj.press(pynput.keyboard.KeyCode.from_vk(17))
            ctrj.press('v')
            ctrj.release(pynput.keyboard.KeyCode.from_vk(17))
            ctrj.release('v')
            sleep(0.2)
            '''=====编号======'''
            setCopyTxet(d)
            mouse.move(770, 570)
            ctr.press(pynput.mouse.Button.left)
            ctr.release(pynput.mouse.Button.left)
            ctrj.press(pynput.keyboard.KeyCode.from_vk(17))
            ctrj.press('v')
            ctrj.release(pynput.keyboard.KeyCode.from_vk(17))
            ctrj.release('v')
            sleep(0.2)
            '''=====编号======'''
            setCopyTxet(e)
            mouse.move(458, 730)
            ctr.press(pynput.mouse.Button.left)
            ctr.release(pynput.mouse.Button.left)
            ctrj.press(pynput.keyboard.KeyCode.from_vk(17))
            ctrj.press('v')
            ctrj.release(pynput.keyboard.KeyCode.from_vk(17))
            ctrj.release('v')
            sleep(0.2)
    def bt(self):
        self.btt=QPushButton(self.window)
        self.btt.resize(80, 30)
        self.btt.move(60, 60)
        self.btt.setText("读取")
        self.btt.clicked.connect(self.btevt)
    def ted(self):
        self.tedd=QTextEdit(self.window)
        self.tedd.resize(80, 30)
        self.tedd.move(60, 20)
        zt = QFont("楷体", 13)
        self.tedd.setFont(zt)
if __name__ == '__main__':
    app=QApplication(sys.argv)
    window=mywindow()
    sys.exit(app.exec())
无标题.png

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

 楼主| yidaiyeer757 发表于 2022-3-27 09:46
chinguy 发表于 2022-3-27 08:55
这个很实用,看起来很快捷方便。

浏览器是后台操作,插件是模拟手动操作,是挺方便的,不用来回切换表格浏览器和插件复制粘贴。只需要输入标号一键操作
 楼主| yidaiyeer757 发表于 2022-3-29 08:27
lizy169 发表于 2022-3-29 07:24
这个好,很实用,要好好学习一下

根据我自己实际情况写的,有啥不懂或者不一样的可以回复我哦
蜉蝣 发表于 2022-3-26 22:01
twapj 发表于 2022-3-27 06:39
谢谢分享!学习了
chinguy 发表于 2022-3-27 08:55
这个很实用,看起来很快捷方便。
 楼主| yidaiyeer757 发表于 2022-3-27 09:47
twapj 发表于 2022-3-27 06:39
谢谢分享!学习了

半自动的,我每天一部分工作都是处理文件,现在轻松不少了
lizy169 发表于 2022-3-29 07:24
这个好,很实用,要好好学习一下
lwz373146809 发表于 2022-3-29 13:02
坐标跟按键位置没对应上,没太看懂
 楼主| yidaiyeer757 发表于 2022-3-29 13:23
lwz373146809 发表于 2022-3-29 13:02
坐标跟按键位置没对应上,没太看懂

你这是坐标这些可以自己改哦
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

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

GMT+8, 2024-11-25 01:54

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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