Algumas coisas que você perguntou são facilmente resolvidas, outras nem tanto. Primeiro de tudo, o IDE. APSO é uma extensão que agora está pronta para uso e fornece um menu conveniente para editando macros em Python.
Depois de instalado, vá para Ferramentas - > Macros - > Organize scripts python . Expanda My Macros e vá para Menu - > Criar módulo . Nomeie-o como "custom_functions.py".
Em seguida, selecione o arquivo e vá para Menu - > Editar . Para que isso funcione, você precisará entrar em Ferramentas - > Gerenciador de extensões e diga ao APSO o caminho para o seu editor de texto favorito. O meu está definido para C:\Program Files (x86)\Vim\vim80\gvim.exe
.
No editor de texto, digite o seguinte código.
def VOL(a, b, c):
v = a*b*c
return v
def call_vol():
oSheet = XSCRIPTCONTEXT.getDocument().getSheets().getByIndex(0)
cell_a = oSheet.getCellRangeByName("A1")
cell_b = oSheet.getCellRangeByName("A2")
cell_c = oSheet.getCellRangeByName("A3")
cell_result = oSheet.getCellRangeByName("B1")
cell_result.setValue(
VOL(
cell_a.getValue(),
cell_b.getValue(),
cell_c.getValue()))
g_exportedScripts = call_vol,
Para executar o código, use o APSO novamente ou vá para o Ferramentas - > Macros - > Execute Macro. Encontre e execute a função call_vol
. Por exemplo, se A1 a A3 contiverem 2, então isso produzirá 8 em B1 porque 2 * 2 * 2 = 8.
Agora, como transformar essa macro em uma função de planilha? A maneira correta é criar um suplemento de planilha . Eu descobri que tais funções funcionam bem, mas requer vários arquivos de configuração XML, e parece que você quer evitar isso.
A alternativa para criar suplementos é uma função definida pelo usuário . Estes só podem ser chamados quando escritos em Basic.
Para uma UDF em que o trabalho principal é feito em Python, coloque uma função de invólucro no Basic que chama o Python do Basic usando o Provedor de Script.
No Windows, as versões recentes do LibreOffice geralmente vêm com o Python 3. O Apache OpenOffice vem com o Python 2.