python操作wps et的玩法

最近想在Linux下实现windows下面win32com一样的操作wps,搜索了半天,找到一个方法,借助AI的力量,跑通了demo, 注意wps的窗口模式必须设置为多组件模式才可以。

代码如下:

import os
from pywpsrpc.rpcetapi import createEtRpcInstance

def main():
    # 创建 WPS RPC 实例
    hr, rpc = createEtRpcInstance()
    if hr != 0:
        print("无法创建 WPS RPC 实例。")
        return
    # 获取 WPS 表格应用程序对象
    hr,et = rpc.getEtApplication()
    if et is None:
        print("无法获取 WPS 表格应用程序对象。")
        return
    try:
        # 显示 WPS 表格应用程序
        et.Visible = True

        # 创建一个新的工作簿
        hr,workbook = et.Workbooks.Add()

        # 获取第一个工作表
        worksheet = workbook.Sheets[1]

        # 在单元格 A1 中写入数据
        worksheet.Range("A1").Value = "Hello, WPS 表格!"

        # 保存工作簿
        file_path = os.path.abspath("test.xlsx")
        workbook.SaveAs(Filename=file_path)

        print(f"文件已保存到: {file_path}")

    except Exception as e:
        print(f"发生错误: {e}")
    finally:
        # 关闭工作簿
        if 'workbook' in locals():
            workbook.Close(SaveChanges=False)

        # 退出 WPS 表格应用程序
        et.Quit()

if __name__ == "__main__":
    main()

这个pywpsrpc不知道是否有人维护,不知道是否可以实现连接原有打开的et进程,而不是新建进程进行操控?

北京
浏览 224
收藏
5
分享
5 +1
3
+1
全部评论 3
 
不是我说,用python操作et对象有点脱裤子放屁,直接把数据处理好,然后输出Excel文件更方便
· 广东省
回复
各有各的场景,如果这个包能利用已经打开的wps进程处理表格和数据,那就可以嵌入到wps里,直接用python代替vba
· 北京
回复
 
wils

创作者俱乐部成员

好像2023年后就没更新了 Linux下不是Python(pywpsrpc)就是js加载项,几乎没得选 要不Python弄个后端,配合js加载项来用,全面又灵活
· 海南省
回复