如何配置PyCharm来开发LibreOffice Python宏?

时间:2016-05-12 09:24:50

标签: python macros pycharm openoffice.org libreoffice

我已经在Win7(x64)中为Python中的所有项目安装了Python 3.5.1。

我使用PyCharm 5.0.5社区版开发Python脚本,其默认设置有"默认项目解释器"作为"3.5.1 (C:\Python35\python.exe)"

在我的工作中,我们正在从MS Office 2007/2010迁移到LibreOffice-5。我在VBA中写了一些宏,尽管我并不热衷于VB。 Basic缺乏良好的数据结构,例如列表(我喜欢列表理解),词典,集合和元组。所以,我想重写LibreOffice-5 Python脚本宏中的VBA宏。

LibreOffice-5安装在"C:\Program Files (x86)\LibreOffice 5\program"版本3.3.5中有自己的嵌入式Python。 LibreOffice-5安装中的Python脚本位于:

  • Libre Office Macros; "C:\Program Files (x86)\LibreOffice 5\share\Scripts\python"
  • 我的宏; "C:\Users\trimax\AppData\Roaming\LibreOffice\4\user\Scripts\python"

问题很简单:
我需要配置PyCharm设置来使用嵌入的python版本开发LibreOffice宏的python脚本。我不知道是否需要设置虚拟环境,或者我是否可以设置项目解释器。

顺便说一句,是否有任何方法可以在文档中插入宏,与文档共享,作为VBA项目模块?

1 个答案:

答案 0 :(得分:4)

PyCharm documentation来看,听起来你可以在两个不同的项目中使用虚拟环境来定位LibreOffice(可能是Python 3)和OpenOffice(可能是Python 2)。否则它看起来像是一个本地解释器就足够了。

为了测试PyCharm,我做了以下事情:

  1. 下载PyCharm并创建一个新项目。
  2. 询问使用哪个口译员。单击齿轮图标并指定Add Local。浏览到C:\Program Files (x86)\LibreOffice 5\program\python.exe
  3. 创建一个新的python文件。
  4. 然后添加此代码:

    import uno
    from com.sun.star.awt import Point
    
    p = Point(2,3)
    print(p.X)
    points = uno.Any("[]com.sun.star.awt.Point", (p,))
    print(repr(points))
    

    它强调了com import语句,尽管它实际上并不是一个错误。 PyCharm确实认可了uno.Any等其他陈述。

    要运行,请转到Run -> Run。它成功运行并按预期打印结果。

    我通常只使用文本编辑器而不是IDE。从我所看到的,很多IDE工具(语法高亮,自动完成,调试)无论如何都不能很好地与UNO一起工作。使用Java更好,但这是一个不同的主题。

      

    顺便问一下,是否有任何方法可以在文档中插入宏,与文档[...]共享?

    要将Python代码嵌入到文档中,请解压缩.odt文件并按照here的说明进行操作。