We're currently migrating from Ask to Discourse, read the details here

Fai la tua domanda

jsbueno's profile - attività

2018-04-22 23:47:09 +0200 received badge  Guru (source)
2018-04-22 23:47:09 +0200 received badge  Risposta eccezionale (source)
2016-02-03 12:18:58 +0200 received badge  Ottima risposta (source)
2016-02-03 12:18:58 +0200 received badge  Illuminato (source)
2015-10-27 14:49:27 +0200 received badge  Buona risposta (source)
2015-10-26 12:21:32 +0200 received badge  Insegnante (source)
2015-10-26 04:31:37 +0200 received badge  Revisore (source)
2015-10-26 04:31:05 +0200 ha risposto a una domanda Macro em Python no Calc?

Oi Beto - Infelizmente, apesar do LibreOffice suportar macros em Python desde há muito tempo, nunca conseguiram colocar um esforço significativo em simplificar a forma de criar essas macros e documentar melhor o seu uso.

Visando tentar criar algo bem legal que pudesse permitir a um usuário comum usar todo o poder da linguagem Python de dentro do Calc, eu criei no ano passado o projeto "LibrePylot" -

Ele é instalável na forma de uma extensão so LibreOffice - e e torna disponível duas novas formulas para a planilha "pyeval" e "pyexec": Uma permite processar direto uma experssão em Python, e retorna o seu resultado. A outra pode executar todo um programa de Python (em geral colocado em uma outra célula).

Para instalar - vá nesse link: https://github.com/jsbueno/librepylot... - baixe o arquivo "librepylot.oxt" - e, com o Calc aberto, vá em Tools->Extension Manager ("Ferramentas-> Gerenciador de extensões" eu suponho, mas o meu está em inglês).

A partir daí vocẽ pode escrever qualquer código Python numa célula - tomando cuidado para o Calc não trocar suas minúsclas em maiúsculas, nem suas aspas comums - " em aspas tipográficas (A recomendação é desligar a substituição nas opções do Calc)

Vocẽ pode escrever código arbitrário de Python em uma única célula, digamos a "A1" como texto comum (Use ctrl+enter ao editar a célula para mudar de linha sem encerrar a edição). A extensão disponibiliza um objeto especial, de nome S que representa o documento aberto no Python - você pode usar índices do Python para ler o conteúdo de outras células da planilha,e para escrever seu conteúdo.

Por exemplo: S[0]["A2"].formula" te dá acesso ao conteúdo bruto da célula A2 na 1ª planilha (sheet). Dentro do seundo colchete, você tanto pode usar o nome em texto das células, como coordenadas numéricas: S[0][0,0] referência a célula "A1" (cuidado que quando usados como coordenadas, o número da linha é 1 menor do que a linha da planilha, por que em Python (e outras linguagens) a contagem se inicia no 0).

Então, para algo parecido com o seu exempl, você poderia escrever "catdogfrog" na célula "A1", na célula A2 escrever isso (O conteúdo é visto pelo calc como texto comum. Cuidado para evitar substituições automáticas):

palavra = S[0]['A1'].formula
S[0]['B1'] = palavra[0:3]
S[0]['C1'] = palavra[3:6]
S[0]['D1'] = palavra[6:]

E na célula "A3" coloque a fórmula =PYEXEC(A2) - e você verá os resultados serem colocados nas outras células. Perceba que a coisa legal do LibrePylot é justamente poder colocar código Python tão complexo quanto se queira que escreve sua saída em _outras_ células da planilha - algo que não é possível com as fórmulas normais do Calc. Ademais, a linguagem python está disponível na integra para um programa escrito numa célula: você pode ler e escrever arquivos, acessar bancos de dados, acessar a internet (através da biblioteca urllib do Python), etc...

Usuários com a extensão instalada tem suas expressões/programas de Python executados toda vez que ... (mais)

2015-02-01 14:39:02 +0200 ha risposto a una domanda como fazer uma planilha editavel em pdf com auto soma?

Oi Eleandro - O formato PDF pode aceitar formulários, e scripts para tarbalahr com formulários (qcreioo que javascript, mas precisaria ver como inseri-los, e etc...) - de qualquer forma, as capacidades específicas de planilhas, como responder automaticamente a mudanças nas células, fica no código do LibreOffice. Essa funcionalidade teria que ser programada separadamente em javascript dentro do PDF - portanto, não está disponível.