TOP

Escrevemos uma macro em Python para LibreOffice Calc

Descrição

LibreOffice Calc permite aos usuários criar suas próprias macros usando a linguagem de programação integrada StarBasic. Essa linguagem é muito parecida com VBA , no entanto, tem funcionalidade limitada porque raramente é usado.

Linguagens de programação modernas, como Python, oferecem muito mais possibilidades e têm uma gama maior de bibliotecas adicionais para todas as ocasiões.

Então, vamos aprender como você pode criar suas próprias macros usando uma linguagem de programação tão popular hoje como Python.


O pacote de programas de escritório LibreOffice permite que você crie suas próprias macros em linguagens de programação de terceiros como Python, JavaScript, C++, Java.

StarBASIC Código para HelloWorld

Primeiro, vamos lembrar como você pode escrever seu próprio programa usando as ferramentas padrão LibreOffice Calc para escrever macros.

Abaixo está o código da macro HelloWorld , que prescreve a frase "Hello World!" na cela "B7" usando a linguagem de programação integrada StarBasic.

Para adicionar uma nova macro, abra o menu Tools - Macros - Edit Macros... , selecione Module1 e copie o seguinte texto para o módulo:

Sub HelloWorld
    GlobalScope.BasicLibraries.loadLibrary("ScriptForge")
    
    'REM "doc" it's a current LO Calc workbook (active worksheet)
    doc = CreateScriptService("Calc")
    doc.SetValue("B7", "Hello World!")
End Sub

Em seguida, feche Macro Editor, retorne para LibreOffice Calc e execute nossa nova macro através do menu Tools - Macros - Run Macro...

Pasta Python

Antes de escrever uma macro em Python, precisamos primeiro criar um arquivo *.py (myPyScripts.py) na seguinte pasta:

%APPDATA%\LibreOffice\4\user\scripts\python

Se pastas roteiros e píton faltando, você precisa criá-los manualmente.

Python Código para HelloPython

Abaixo está o script Python para a macro HelloPython , que prescreve a frase "Hello Python!" na cela "B8" no programa LibreOffice Calc.

Para adicionar uma nova macro, abra o arquivo myPyScripts.py por meio de Notepad++ (ou Windows Notepad) e copie o seguinte texto lá:

from scriptforge import CreateScriptService

def HelloPython():
    doc = CreateScriptService("Calc")
    doc.SetValue("B8", "Hello Python!")
    return None

Então feche-o Notepad++ e retorne para LibreOffice Calc. Para confundir este script, abra o menu Tools - Macros - Organise Macros - Python... , selecione "My Macros" , abra a pasta "myPyScripts" e escolhendo HelloPython aperte o botão Run .

Observe que essas macros, que estão em StarBasic, que estão em Python, usam a biblioteca interna ScriptForge . Esta biblioteca simplifica a escrita de macros para usuários finais, ocultando todas as funcionalidades do sistema "nos bastidores".

Usando a extensão

Você também pode usar um conjunto pronto funções e utilidade escrito em Python instalando a extensão YLC Utilities .

Depois disso, esta funcionalidade estará disponível em todos os arquivos que serão abertos em LibreOffice Calc.