【BUG】关于PY脚本编辑器操作图片,图表的API漏洞
如题,关于PY脚本编辑器操作图片,图表的API漏洞
希望尽早修复吧,整合python让WPS更强大了,但是BUG让python落地成空,一写点代码就搞人心态,希望整好PY脚本编辑器,我都要已经想好我的项目今后的方向了,可惜PY脚本拉跨。。。
首先用的是WPS25222_64位,25225_32位,都实验过了。
经过几天摸索,发现py脚本编辑器的API根本有的不能用或者有问题,我参考的官方文档如下:
太累人了,代码官方拿去测试吧,直接测试,问题注释上都有,不用源文件,用不到。
希望搞好这些API。
link = 'https://www.baidu.com/img/PCtm_d9c8750bed0b3c7d089fa7d55720d6cf.png'
图片base64 = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAMAAABEpIrGAAACH1BMVEUAAAA9kP8mpv9Fv/8QT94TXeQAfv8trP0xr/0VUdoAcv8LgPs1sf4AgP4QUuURTuEVl/ksq/wAg/84tf4NUt80sf0bnPsPUuAAYfsAgP4UTtYAY/8GXPQRkv1Jxv8AZP86tv9Bvv9Gv/9Atv8KiPUOVesAZ+wbS8wUl/kjo/sAYv8PVekjovxBu/8AY/8trPxCu/8AW/AAcvAxsP0npvsYTdElo/oQT9o+uP8AYv8KVOIHdugAYfwAfPwbfe49uf4XmfkcdOopo/oAYv86tf4AYf8TT9cZaeYVTdUJVOUcnvsAYv8Agv9Iwv8AYv9Jwf8bSs0gofoAY/8Ag/9Gv/8en/oAYf9Fv/8AWuQZS80AdO5BvP8AYv9DvP8Umfo9uv8LVOUAgf8amfk/uf8AY/8Ag/8Ahf8TUdgVT9UNWOknov8trPwxr/wmpvspqfs1sv0io/s5tf0AgP8bnfoMV+4AYPoAYv8AYf4AYfwAe/sen/oAd/gAXvYAff0LW/MLWfEOUN0PT9oSTtZAu/49uP0qqfweoPoXmvkAdPUAXPIAcfEKUuIWTNIXS88KXPYAWusOVeoPVOkPUuYQUeQQT+IMUeAUTdMZSs09uP4Aa+kAWOgAaeQIVOQIU+QAV+MRTd8STd0RTtgSl/kAW+8NWO8Abu0AbuwBZNsAg/8AYPwAc/MIVecAZuEAVeAAWt8AZN0JgvAIfOsJV+sTVuIAU9qil9AQAAAAa3RSTlMAAwb++A3+bkkkGxL8+Pf36tnTubCYjol4dmVjRjEvLysZFA7+/Pv6+fj39/b19fPw8O/u7Ovq6Ofn5+Xj4uDa2trZ1dPS0s/Ny7+9vLi4trapoqGgoJ2XkI+KgoJycGRhX1BNS0pHQj06IcCB3jkAAAIBSURBVDjLdZCHctpAFEWfCMU1ce8tTu+99957770nJFGwkE1sgyMTAginYbkAIQSD494+0G+ltTAacWZnNLt7dO/Og3Tqzl2og8wsvroAudEI+iy5s+6LzMZ7Bp1r5sFOQegRenAJwoEnoCXr6Mc0ihvSrhuK32vJK21Mva00760OWyz0KZYNbzJQmKXUF1o7rZ24rGngweETIGOwbH2nw/ZDUaM6grJVHzSs3R+NoqDy+lKLuwWX2618r03/QRalhNzbewo+qZyuZX4TVMFQubm3f3xy5VeZg49xsL8IC+mUH+1zeLyJ3pHkRCwWK7hvIGc/CYrwvIhtbXZ4hgYwJLm0LFf56QdhDRAq8wdZMypD3kT/SBJo6nfCMmWTc2WQlUO8GDIn2GSAUnuWGERJpIS4LR4HlWdFNITua9pl5s3h5vJ81tzscAAhuyTc3kZQ51CxqasvMmDGENyZyo1BX2iqLRAI0L7qvU2fv6Ex5mVbgana4XIGfb7QsI0KNcc4O4/Gv67I6Jjn5cmOvy4nGuFwaFipqFjN2YlBQkZn/N0dxAhiSfjUKzqHyxwq/0lIX0T0d6OAGb7dD0Gl/gzH8UqN6JcNp7HcBPN5esTO8U2oSCIpcZVkgwamepedxxpJROP4C9DBdHc9vlWSxG1VDOiTc53jpRW3TJCZ+vMXNeWzDz4DoNZyqecAAAAASUVORK5CYII='
sht = ActiveSheet
rag = sht.Range('e1:f11')
for i in sht.ChartObjects():
if i : i.Delete()
for i in sht.Shapes:
if i : i.Delete()
# # 以下这句可以在图表中植入网络图片做背景 但是运行后图表立马消失退回到本地表格 只有本地表格可查看!
# sht.ChartObjects('图表 1').Chart.PlotArea.Format.Fill.UserPicture(link)
# # 以下代码事实上可以插入图片 只是宽高都是0! 请问为什么??
# pic = sht.Shapes.AddPicture( 图片base64, 0, 0, rag.Range('a1').Width, rag.Range('a1').Height, Range('a1:d11').Width, Range('a1:d11').Height)
# pic.Left = rag.Range('a1').Width
# pic.Top = rag.Range('a1').Height
# pic.Width = Range('a1:d11').Width
# pic.Height = Range('a1:d11').Height
# 以下第一句无效 第二局返回错误 第三句无效
# pic = sht.Shapes.AddPicture( {图片base64, 0, 0, rag.Range('a1').Width, rag.Range('a1').Height, Range('a1:d11').Width, Range('a1:d11').Height})
# pic = sht.Shapes.AddPicture({
# FileName: 图片base64,
# LinkToFile: 0,
# SaveWithDocument: 0,
# Left: 100,
# Top: 100,
# Width: 400,
# Height: 300
# })
# pic = sht.Shapes.AddPicture({
# 'FileName': 图片base64,
# 'LinkToFile': 0,
# 'SaveWithDocument': 0,
# 'Left': 100,
# 'Top': 100,
# 'Width': 400,
# 'Height': 300
# })
# # 方式1:以下方式创建的图表有BUG 经过研究发现是PlotArea的宽度高度无法在PY里面设置 但是在airScript是能设置的!-------
# # cha = sht.Shapes.AddChart2(-1, xlLine, 100, 100, 150, 150)# 无反应 应该不支持这个方法
# cha = sht.ChartObjects().Add(rag.Range('a1').Width, rag.Range('a1').Height, Range('a1:d11').Width, Range('a1:d11').Height)
# cha.Left = rag.Range('a1').Width # 必须设置第二遍才能成功
# cha.Top = rag.Range('a1').Height # 必须设置第二遍才能成功
# cha.Width = Range('a1:d11').Width # 必须设置第二遍才能成功
# cha.Height = Range('a1:d11').Height # 必须设置第二遍才能成功
# cha.Visible = True
# # 以下两句SetSourceData,ChartWizard是没有返回对象的
# # cha.Chart.SetSourceData(rag, xlColumns) # 双击图表区域有设置窗口 设置窗口显示数据区域确实设置成功了
# cha.Chart.ChartWizard(rag, xlLine, xlColumns) # 双击图表区域有设置窗口 设置窗口显示数据区域确实设置成功了
# chaArea = cha.Chart.ChartArea
# chaArea.Width = 400
# chaArea.Height = 300
# # 以下属性设置失败 !
# chaPlot = cha.Chart.PlotArea
# chaPlot.Width = 380
# chaPlot.Height = 280
# chaPlot.InsideWidth = 350
# chaPlot.InsideHeight = 250
# # 方式2:官方示例代码 返回本地表能看到创建的图表 但是在线表格看不见 奇怪
# # 官方文档:https://airsheet.wps.cn/pydocs/et_api/excel/workbook/ChartObjects/ChartObjects%20%E5%AF%B9%E8%B1%A1.html#%E8%AF%B4%E6%98%8E
# # 官方示例:在工作表 Sheet1 中新建一个内嵌图表,然后以折线图形式添加单元格 A1:A20 中的数据
# cha = sht.ChartObjects().Add(30, 30, 400, 300)
# cha.Activate()
# cha.Select()
# cha.Chart.ChartWizard(rag, xlLine)
# cha.Left = 30
# cha.Top = 30
# cha.Width = 400
# cha.Height = 300
# cha.Visible = True
# cha.Left = 30
# cha.Top = 30
# cha.Width = 400
# cha.Height = 300
# cha.Visible = True
# cha.Activate()
# cha.Select()
# print(f'ChartObjects:{cha.Name},可见否:{cha.Visible}')
# print(f'ChartObjects:{cha.Chart.Name},可见否:{cha.Chart.Visible}')
# --------
for i in sht.ChartObjects(): printObjInfo(i)
for i in sht.Shapes: printObjInfo(i)超字数了,自定义输出函数截图如下:
@金山办公
@金山办公