首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >python-uno如何通过管道操作libreoffice-calc?

python-uno如何通过管道操作libreoffice-calc?
EN

Stack Overflow用户
提问于 2020-08-31 10:20:37
回答 1查看 211关注 0票数 3

Python uno可以通过socket与libreoffice-calc通信,常用的方式是从shell启动libreOffice-calc:

代码语言:javascript
复制
soffice --calc --accept="socket,host=localhost,port=2002;urp;StarOffice.ServiceManager"

soffice可以通过socket和port:2002与python-uno通信。

代码语言:javascript
复制
sudo netstat -anp  |grep  soffice
tcp        0      0 127.0.0.1:2002          0.0.0.0:*               LISTEN      3115/soffice.bin    
unix  2      [ ACC ]     STREAM     LISTENING     45712    3115/soffice.bin     /tmp/OSL_PIPE_1000_SingleOfficeIPC_7fb3858dfd518f4aa054b3e7cf720
unix  3      [ ]         STREAM     CONNECTED     45702    3115/soffice.bin     
unix  3      [ ]         STREAM     CONNECTED     45716    3115/soffice.bin    

然后,您可以打开python shell import uno来操作calc

现在我从菜单打开一个calc

从菜单启动soffice时:

代码语言:javascript
复制
sudo netstat -anp  |grep  soffice
unix  2      [ ACC ]     STREAM     LISTENING     49386    3200/soffice.bin     /tmp/OSL_PIPE_1000_SingleOfficeIPC_7fb3858dfd518f4aa054b3e7cf720
unix  3      [ ]         STREAM     CONNECTED     49390    3200/soffice.bin     
unix  3      [ ]         STREAM     CONNECTED     48919    3200/soffice.bin  

soffice无法与套接字进行python-uno通信,端口:2002未打开。

lilbreoffice-calc从菜单启动时,如何使用python-uno操作calc

EN

回答 1

Stack Overflow用户

发布于 2020-09-03 13:11:55

这不是一个真正的Python问题,但是您需要修改LibreOffice计算的.desktop文件并添加配置参数。例如,您可以打开一个终端窗口并键入:

代码语言:javascript
复制
sudo nano /usr/share/applications/libreoffice-calc.desktop

然后找到可能如下所示的行Exec : libreoffice --calc %U添加您的参数:

代码语言:javascript
复制
libreoffice --calc --accept="socket,host=localhost,port=2002;urp;StarOffice.ServiceManager" %U

请确保将%U保留在命令的末尾,以使其像以前一样工作。

保存,现在它应该可以工作了!

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63663954

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档