UK-f&gsqJuH!|F3aGfaW&Itl8kU(80REf
z=7q&MRXCtKAXgEPVWU#1WQa#VgJBdWIWFeYDa&I78W3?esS{tNOs-Nc9*ieMsdm}4
zm*q@h;e!xdBo?cxr-iT9r3MO4Pu|I7olM@@l6AH$x>jYX*Dbi#|Jqdz%q35+&C+WZ
z=(a^*GzVWeIQ`6*kKD2m?goI4u8s`VasM>q#L3KIBSc`DAylqPOaQc5+T_Ee>3sU6
zO&$m)%$-V%Cm+LeN=yW}o(PL)1vsY2xw}TV$>4<{fY_`&{=*>8tRNds3DI*fc#;86
zZvuiAMY|*K5#iJDEY%eU=l=0Ni{yy=FA_H>_hsh`&P?qS*QkN}Ur|GWcYylk!deVkAxKi)#f+rx
z+0Vgz8BRsR7bNopoW}r&y!RH+?DJ6qt{Pzz2AeTJ#w%>a0DCI*Kp>fv_KLz>*o|qF
zdemAb!iAHV=TWB|5s2Ce$PiCM00%1rWvRo{#EvUF@}ADDr!#%#>b9I`AT@~M_3)*`
zv(d#=Wp8Y{j0f&O#Mbe5{7U
zQL)Hcakp$MmTe_YXbL~p<|kL2yR;KXrBeqmCA!4>$L&5xa@T%X*zpOD2}K2j*$)8L
z3@R|8Eb>Lk
zcsRl*&P(KTNmJKkG!&c!0Wc91IEgw`ERn4C^I{?vi=xEQ8UfYOr(n2-eKv_w8-|^7
zL5y=#f(AGQ7HA|h$DfUWR!Gvrj*zU}`B;z-CxCG(vPci5Bm)5PxGHtdL#cA9BLf;~
zb@{$hv9gBjpT{zP0|Btps=Arxmzr}`Eh$sMRyF;}oULimvudXIO7G0hD?1lm?iuS9
z>x|=yWA;MM9ox9w&uZ?-$`xDnlY*QI;X9U1qQ1$yfu?Yunn!qD_5UOc35ciegErEzyR
z?50QU#7ev!ccjMK^$!<-mH7VsNHh%Foz;N?UegHp^~&zsuGbN~(QmB8`~8N}DrQai
zr}hfa4+2s7V$FX2^4$RnVePy>f@-Q27w8i-Yy`@D(+D0AR$MHlwhd}-b4M{Z4B`Oj
zSFIq1$1-{fC@P%y{aTH1MmPG+tOdm?PjwTZ0;ekW!K(HFaOHYbMf{M`}-vTXw{(`qbPbw(m{aOo92K0%DB_A*jTJ1dTrz$%=J5eE4%Ycd8XIVZif9FTLscB}GCueb*Pdx)O@&!@u~pm40N+DarF-S795<~Y
zHW1oM0x3DBLrlWJ-+pp9q9Bt8(+qd36w6E$uy%R-30RlP#d`eq^4-9JOylhX_Hx5R
za#&HX$V|RWE71j72?h^nOk|9S#F=oE6Z!TyXjMR^!9)cn5d*b4GbUrPNto;TVu&c#Cy05dZ-Ftoke|!2+{6RTq4g2ZSX!|;-u74
z!^!okQV4`pB*d&}6F{7h2*ncu#{}byM5(n2xI`p#@lil~m1K$v5wIkH*#Xo;0-`9?
z%?D3Sa`y~yB4wam69_!8_$C|t@;is`YYrMow(b=K7?yKU0i_{>C*75F{mc*DE5w(4
zTo%IEs_~ov+8{-0nWwphG@~qF=IT
zQc$w+V7ib`@`4|`YzFfH*o)&5IVS0`yH)B)2e@Kyg+E6^hrBvqTmo2wD0~4E4H%bf
zV8IHgGx7wai^#8WqAdO9-aNuT>wRqxeJ1y|J!Nak7df{VGUC)|CgQu03jn&s-V
z8TX+D`tXvW%`!yZaM#UrzSKEq0TV?E6APB=V+J$y>fd-;uQxR18#ZJc
zHl#n5Yv`M%3NFu#^NMqhy5{m-htyAG8@i_{DBHxOh6@dA^9_C3hQ6zHZ#V3jHWxhg
zc~5)R)1EfvJl*r#uX%PBye)aJFYEQC+u!zXzGWmD2g%!3qON_~0O%p_YR$S@=SJUl
zt-Ga%M6kF(`}OOy_3P6Ia`io_L!fcX)2&&$b?$ij>;m0W{(OFc?khb%mHy-c-3zCK
zJk4ZjX08D=Y7ZJH{WqOobEePE!g;f2!PP5|nWB;NcF$YVFlsxl(L3)RAz>`vuIjya
zcOS;CRrUVij+JoL-6lvF&P8`ars>JoHodks)3`6^-k+iO|6xgwIrqdtnBmvm?)@hH
z>pKP>-|r)SzWYfx+847NM^sWTrkLX
z^GCrXt%p4I0EnW28nokU?}0FhdIU_eK0st^078aImLg2D0!*?2{HX-hv=T*_gutVc
zUxEf=R=^}%MVM3u9W3?@|`2d&S%!|(VIFsU-la+p+^#!|KwN@Sm1*1n#~(%GVZD!}Sq|H*6=9pBG>#u}FHjX>+bXvDL&CP2mAm8-ujJdkAcEmch1Kzq5RI%COBj;4Fh}b;*Neu&rn=`q+@oR#rjsi4P0cPKz
zkLHrOcw(2#MVJZtX7rMyLkTe+of?cz1;I2?iycd0a0!BBjSA<=dxTJqsQ~55Xh1vh
zmr&m40?!igxf5ov##szdHp#X+86F8=!$(9U!q*{?-0JIyC3N&{%>8Q&zJmd(7$h1I
zkxDB(0ZAerTuX3Bi7B86Obmo(8>wJF{0}T%2YdA*afc#S)o3P#3e-Sx(<^fTGUP165jD2u8~d}3{a5?nZrlg($FS(kcJ&&a$a`{zxdQFyIGY2-x?vH_}0LrCd
z)O)YdeRusDq8h#rQ4K1HYWLM=u7)y=Pv+cvGV~r9Q4N+5)sRC*R70BpQSGUR+ncq`
zLyZ2--fD=y<**K|HowJKhq}yftutfFChGx*{;eI30~YhRp52JO_e3Q>0_WP4Hc=VB-jdST}=T6&Mc;KjteR!O@Un5
zpVP0^2((HUA*^I{K##*R309&l%19yP-pX*_
zTWM}7BcQlhc|lJ}P&ya;1*$m2c@?lz`TN|5F-xs$3T<>Od59{bUX_|BKux7w;B5)K
znzxj_3n0qnGX&n0Cf+h&8Mi9;GU;eb_U%=iKNPKo><$tXLKEQsjP84=&n^m#749Zo
z0@@^#Ye(>yjK_HO+^V>Ul>4Q~8tP`*cab;z27
zqH_nI64HL1M{I7
zylYU8Bbh%HiS5G(=*VTy81S}H4*FKb9D4-H%O?9W>;5R#X)6{$PZx=jt@hXe)(l>O
zV~U8v4O0?Pif}rNrB|sZcC{ASIADb{y7)hk4>tR@?zzMB9+Uk`dav5%KbLXuU7+_Z((cPgUN|zlet~`r
z3RrBHZ7C1WgQ`C~d0+us8-FKy*
zO;2UqJ3#_0R@I`if37~wE>vxre;Rc1MJ4@?1y?s7ZWSMsZE$|R?y0$JfrM*So7A(c
zPOI^mbSUHAyg+YR^wi4kdUf~2jqvvW*3&lVCVt-F9whZY@AN?Y4bnR3G{0dpW87^W
z+^T=0(J|Pqf1}$7aRG;U*hfmTH!WCOz;O6eND^@03C}GlM^bz;!gG8y5D<{{2m=@##o#FnK8pcbnq}Lg;`xDE7y(g-
zpv-OnjnDB&C=gV&O=2MMLqfpAnX(ED7{dU~ULqEKo_JrUH?}QViN`wb5S_*y?|+7D
zH1@o|(_*Z9zuIi{z3tnggxHrC$h*kT+am*4}6gXB^2j()pwko^5wvd&ni
zw1c&W;HO@A3qC$4@6E=@Hq>79)cf-oHT9K;m0AT4T4$zYy>_L
zfzL*?k3-8Qy~bv=QuSVEw}Rlm_5Zhc2SuyrV}~QHD05dQs7DzvoV}L`_{c|>G^4Wv!^MY%
z*CA0g*`cy=naM5;36dE)h2&k>Ary_kN+?=x2Y4a}>R-O{1Z@CX{66PF{;nmFi=GHD
z2Wi@6KWOUot*XHE{uLn8?x0K(xbWR%_&>KS)ZZml`+Ldr(QUe@*>0$
z0@y{MJX?8bAP6>OWePuhMAZ((Ah*2sVnrq2G#r~mDF=L|XL`V6&R87wHNT^dH6
zgCu1^lpMJL3+Y(>b{*g#bVsQ$4C-#?_3%X-{He$ZcDI2C^ZnEMjU<>eiArYG<9k(V
zG&-V7$^&%uBph=7666z#8;DP
z^aZCoWxZP;B2;`3u7DZ(q^LvjQU28yfo$VzA6FNwXhBY+<}q}y^^{@@^>MM
zLs1CxWK?(#37lZC=>p?RSJ7r9D;tCtk?2n_n8)BBF!&4x1`Oo>zK$_XOiR>G1uE {
- const activeWorkbook = wpsInstance.app.ActiveWorkbook;
- for (let i = 1; i <= activeWorkbook.Worksheets.Count; i++) {
- alert(activeWorkbook.Worksheets.Item(i).Name)
+ getSheets: (args) => {
+ const workbook_name = args.workbook_name;
+ let workbook = null;
+ if (workbook_name) {
+ workbook = wpsInstance.app.Workbooks.Item(workbook_name);
}
+ else {
+ workbook = wpsInstance.app.ActiveWorkbook;
+ }
+ const sheets = [];
+ for (let i = 1; i <= workbook.Worksheets.Count; i++) {
+ sheets.push(workbook.Worksheets.Item(i).Name);
+ }
+ return sheets;
}
}
diff --git a/py-et/invoke-et.py b/py-et/invoke-et.py
index 8032660..4952359 100644
--- a/py-et/invoke-et.py
+++ b/py-et/invoke-et.py
@@ -1,91 +1,12 @@
-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": "xbot-et",
- "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"}
-
+from ET import ET
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()
+ et1 = ET()
+ sheets_name = et1.get_sheets()
+ print(f"et1: {sheets_name}")
- 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)
+ et2 = ET()
+ et2.workbook_name = "工作簿2"
+ sheets_name = et2.get_sheets()
+ print(f"et2:{sheets_name}")
diff --git a/xbot-et/js/xbot.js b/xbot-et/js/xbot.js
index 8dce0eb..1928235 100644
--- a/xbot-et/js/xbot.js
+++ b/xbot-et/js/xbot.js
@@ -1,7 +1,6 @@
let wpsInstance = null;
-
function InvokeFromXbot(param) {
// 1. 解析参数, 如果不是字符串, 则转换为字符串, 并用json解析, 解析失败直接retrun
if (typeof param !== 'string') {
@@ -27,7 +26,7 @@ function InvokeFromXbot(param) {
args = JSON.parse(param.args);
} catch (e) {
args = {};
- }
+ }
console.log("method:", method);
@@ -47,19 +46,19 @@ function InvokeFromXbot(param) {
// 5. 判断是否有 wpsInstance, 如果没有直接return
if (!wpsInstance) {
- return {msg: '未注入', code: -3};
+ return { msg: '未注入', code: -3 };
}
// 6. 判断 wpsInstance 是否有 method 方法, 如果没有直接return
if (!wpsInstance[method]) {
- return {msg: '方法不存在', code: -4};
+ return { msg: '方法不存在', code: -4 };
}
// 7. 执行 wpsInstance 的 method 方法, 并返回结果
try {
const result = wpsInstance[method](args ?? null);
- return {msg: '执行成功', code: 0, data: result};
+ return { msg: '执行成功', code: 0, data: result };
} catch (e) {
- return {msg: '执行失败', code: -5};
+ return { msg: '执行失败', code: -5 };
}
}