diff --git a/py-et/et.js b/py-et/et.js new file mode 100644 index 0000000..b4fc9c9 --- /dev/null +++ b/py-et/et.js @@ -0,0 +1,13 @@ +const wpsInstance = { + app: wps.EtApplication().Application, + + // 获取全部 sheet 页 + getSheets: () => { + const activeWorkbook = wpsInstance.app.ActiveWorkbook; + for (let i = 1; i <= activeWorkbook.Worksheets.Count; i++) { + alert(activeWorkbook.Worksheets.Item(i).Name) + } + } +} + +return wpsInstance; diff --git a/py-et/invoke-et.py b/py-et/invoke-et.py new file mode 100644 index 0000000..d0e8b45 --- /dev/null +++ b/py-et/invoke-et.py @@ -0,0 +1,91 @@ +import base64 +import uuid +import json +import http.client +import webbrowser + + +def start_http_server(): + """start debug""" + webbrowser.open("ksowpscloudsvr://start=RelayHttpServer") + + +def get_version(): + """check http status by get version""" + try: + conn = http.client.HTTPConnection("127.0.0.1", 58890) + conn.request("POST", "/version", body="{}", headers={}) + response = conn.getresponse() + response.read() + conn.close() + return response.status == 200 + except: + return False + + +def invoke_wps_func(func, args): + + # 可能触发是否允许访问 + invoke_param = { + "method": func, + "args": json.dumps(args), + "AppType": "et", + } + + req_uui = str(uuid.uuid4()) + + info = f"{json.dumps(invoke_param)});\ + var xhr = new XMLHttpRequest();\ + xhr.open('POST', 'http://127.0.0.1:58890/transferEcho/runParams');\ + xhr.send(JSON.stringify({{id: '{req_uui}', response: res}}));void(0" + + data = { + "name": "xbotet", + "function": "var res = InvokeFromXbot", + "info": info, + "showToFront": True, + "jsPluginsXml": "", + } + + payload = { + "id": req_uui, + "app": "et", + "data": "ksowebstartupet://" + + base64.b64encode(json.dumps(data).encode()).decode(), + "mode": False, + } + + conn = http.client.HTTPConnection("127.0.0.1", 58890) + payload = json.dumps(payload) + + conn.request("POST", "/transfer/runParams", payload) + + http_response = conn.getresponse() + data = http_response.read() + conn.close() + + try: + return json.loads(data.decode("utf-8")) + except Exception as e: + print(data.decode("utf-8")) + return {"message": "failed to parse response"} + + +if __name__ == "__main__": + start_http_server() + print(get_version()) + + # print(get_version()) + path = r"C:\Users\32075\OneDrive\文档\Code\RPA_Script\wps-js-extension\XbotWps\py-et\et.js" + with open(path, "r", encoding="utf8") as f: + code = f.read() + + func = "inject" + args = {"code": code} + res = invoke_wps_func(func, args) + print(res) + + func = "getSheets" + args = {"text": "123"} + res = invoke_wps_func(func, args) + print(res)