LibreOffice Calc dá aos usuários a capacidade de criar suas próprias macros na linguagem Python, no entanto, essas macros só podem ser armazenadas no PC do usuário, ou seja, no próprio programa. Infelizmente, o LO Calc não tem a capacidade interna de armazenar Python scripts no próprio arquivo *.ods, o que causa inconvenientes ao trabalhar com esses scripts, pois não podem ser transferidos junto com os dados para outro usuário.
Este problema só pode ser resolvido manualmente, ou seja, reembalando o arquivo *.ods, adicionando os necessários Python scripts.
Então, vamos aprender como incorporar Python scripts em arquivo ODS, para que seja possível enviá-los a outros usuários.
Todas as macros em Python são armazenadas na seguinte pasta:
%APPDATA%\LibreOffice\4\user\Scripts\python
Se as pastas Scripts e python estiverem ausentes, você precisará criá-las manualmente.
Abaixo está o Python script para a macro
Para adicionar uma nova macro, crie o arquivo
from scriptforge import CreateScriptService
def HelloPython():
doc = CreateScriptService("Calc")
doc.SetValue("B8", "Hello Python!")
return None
Em seguida, feche
Para transferir o Python-script para o arquivo *.ods, é necessário descompactá-lo com qualquer arquivador (7-zip, WinRAR etc.) em uma pasta separada. Sim, está correto, seu arquivo *.ods é simplesmente um arquivo de um conjunto de pastas e arquivos.
Em seguida, nesta pasta descompactada, crie uma subpasta Scripts e dentro dela, uma subpasta python. Como próximo passo, copie o arquivo
Também é necessário especificar explicitamente o caminho para o arquivo onde sua Python macro está localizada. Para isso, na pasta META-INF edite o arquivo manifest.xml, adicionando a seguinte linha:
<manifest:file-entry manifest:full-path="Scripts/python/myPyScripts.py" manifest:media-type="application/binary"/>
Agora, comprima o conteúdo da pasta previamente descompactada com suas alterações em um arquivo *.zip. Em seguida, renomeie este arquivo, mudando seu nome (para não sobrescrever seu arquivo original) e a extensão de *.zip para *.ods.
Você também pode usar um conjunto pronto de funções e utilitários escritos em
Depois disso, esta funcionalidade estará disponível em todos os arquivos que forem abertos no LibreOffice Calc.