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无法与套接字进行python-uno通信,端口:2002未打开。
当lilbreoffice-calc从菜单启动时,如何使用python-uno操作calc?
发布于 2020-09-03 13:11:55
这不是一个真正的Python问题,但是您需要修改LibreOffice计算的.desktop文件并添加配置参数。例如,您可以打开一个终端窗口并键入:
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保留在命令的末尾,以使其像以前一样工作。
保存,现在它应该可以工作了!
https://stackoverflow.com/questions/63663954
复制相似问题