簡體   English   中英

python-uno 如何用 pipe 操作 libreoffice-calc?

[英]How python-uno can manipulate libreoffice-calc with pipe?

Python uno可以通過socket與libreoffice-calc通信,常用的方式是從shell啟動libreOffice-calc:

soffice --calc --accept="socket,host=localhost,port=2002;urp;StarOffice.ServiceManager"

soffice 可以通過 socket 和 port:2002 與 python-uno 通信。

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 時:

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 無法與 socket 通信 python-uno,端口:2002 未打開。

lilbreoffice-calc從菜單啟動時,如何使用 python-uno 操作calc

這不是真正的 Python 問題,但您需要修改 LibreOffice Calc 的 .desktop 文件並添加配置參數。 例如,您可以打開終端 window 並輸入:

sudo nano /usr/share/applications/libreoffice-calc.desktop

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

libreoffice --calc --accept="socket,host=localhost,port=2002;urp;StarOffice.ServiceManager" %U

請務必將 %U 保留在命令末尾,以使其像以前一樣運行。

保存,現在它應該可以工作了!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM