подключение Python к LibreOffice (pyoo, uno или другим способом) - PullRequest
0 голосов
/ 19 декабря 2018

Из программы на Python, которая работает с базой данных, запросом из документа и т. Д., Я хочу создать файлы Calc (.ods).Я добился хороших успехов с библиотекой pyexcel_ods, но мне не хватает 2 точек импорта, я хотел бы немного форматировать, и я хотел бы дать окончательное взаимодействие конечному пользователю (для некоторого изменения перед сохранением).По запросу я пытаюсь работать напрямую с libreoffice, и ... ну, я заблудился.Интернет полон частичных объяснений, большинство из них устарели, я застрял.

То, что я пытался: - не работает с другой версией Python (поймите, я отложил этот момент в сторону, но imho этосерьезная проблема. Должна быть возможность «дистанционного управления» libreoffice стандартным протоколом / языком)

  • из libreoffice python (3.5.5), я смог установить pip, нозатем я получаю сообщение об ошибке, когда пытаюсь установить пакет (например, pyoo), я остановился здесь, так как в любом случае это не совсем то, что я хочу (поскольку основное приложение написано в другой версии Python, в другом месте и т. д.оптимальное решение)

  • установлен тот же главный / младший питон (3.5.4), добавьте путь libreoffice, хорошо, UNO может загрузить, но затем PYOO сделает ошибку (так как их больше 2год после последнего выпуска .... это проблема PYOO, или какая-то недостающая библиотека / определение / ?? от меня?)

  • может быть, win32: OLE или прямое сокетное соединение может быть решением?Я не нахожу много информации о тезисах.

с отдельной установкой Python с той же основной / вспомогательной версией:

import sys
sys.path.append("c:\\Program Files\\LibreOffice\program")

import pyoo 

результат:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "C:\progs\Python35\lib\site-packages\pyoo.py", line 29, in <module>
    FORMAT_TEXT = uno.getConstantByName('com.sun.star.i18n.NumberFormatIndex.TEXT')
  File "c:\Program Files\LibreOffice\program\uno.py", line 72, in getConstantByName
    return pyuno.getConstantByName(constant)
uno.RuntimeException: com.sun.star.i18n.NumberFormatIndex.TEXT

Кстати, это Windows 10, я также могу рассмотреть решение о среде Linux.

...