Mostrando postagens com marcador Calc. Mostrar todas as postagens
Mostrando postagens com marcador Calc. Mostrar todas as postagens

quinta-feira, 9 de março de 2023

Formatação condicional: criando Gráficos dinâmicos no Calc do Libreoffice

 O vídeo abaixo aborda três maneiras de fazer gráficos dinâmicos, Usando a função Soma(), usando a função CONT.VALORES() e usando a função SOMASE().

Logicamente tudo vai depender do tipo de dados os quais você está querendo basear seus gráficos Veja o vídeo, vale a pena. 

quinta-feira, 5 de janeiro de 2023

Prá você, meu presente de Ano Novo!

Se você trabalha diretamente com planilhas, sabe que elas podem ser ótimas para computar números e dados, mas nem sempre são tão fáceis de usar. Já lidamos com o problema de colegas de trabalho modificando a planilha sem querer, digitando informações erradas nos lugares errados ou simplesmente destruindo fórmulas e funções complexas por inúmeras vezes. Ficamos cansados de ter que refazer tudo e tentar lembrar todas as complexidades de nossas planilhas. Então eu comecei a procurar uma solução que me permitisse compartilhar os dados com outras pessoas e ainda manter minhas planilhas seguras. E encontrei uma maneira que adaptei usando este site, ele pode gerar para você um programa que usa banco de dados totalmente personalizável e adaptável para qualquer planilha do usuário. Finalmente encontrei uma solução que eu precisava e que você certamente precisa também! O melhor de tudo? É muito simples de usar e não te custa nada além de se inscrever no meu canal. E isto é gratuito! Siga o vídeo e compreenda.


segunda-feira, 18 de julho de 2022

Gere formulários PySimpleGui rapidamente para planilhas Excel, Libreoffice Calc e outros

CRUD  em BD e MENU - Gere programas completos rapidamente

Vou te apresentar uma forma incrível de gerar aplicativos python em minutos a partir do site de gerar formulário para Excel e Calc do Libreoffice. E pode ser usada em conjunto com suas planilhas diárias. Pronta para um usuário final fazer seus aplicativos. Se você é desenvolvedor ou está estudando Python, vai conseguir ver um CRUD funcionando perfeitamente com banco de dados. Se você já domina Python ela pode ser aproveitada para adiantar muito seu trabalho em um projeto mais complexo, pois ele possibilita um CRUD completo.



Para um gostinho antes do texto: Olha como eu faço um aplicativo Python em menos de um minuto. Primeiro dou um nome ao banco de dados no arquivo na opção banco:




Depois digito o campo separado por um espaço em branco entre eles e um "Enter" por linha. Faça isso no bloco de notas (para evitar formataçã) e copie e cole no formulário do site. Na ordem fica assim:

Nota NOTA texto opcional
Cnpj-CPF CNPJCPF texto opcional
Lançamento LANCAMENTO contas obrigatorio
Valor VALOR numero obrigatorio
Histórico HISTORICO textogrande obrigatorio
Anotações ANOTACAO textogrande obrigatorio

Note que observando cada linha, elas tem 4 nomes e o primeiro é o que irá aparecer no formulário e por isso pode ser até acentuado e com letras maiúsculas e minúsculas, o segundo é para informações ao banco de dados e por isso em maiúsculas e sem acentos ou caracteres especiais . O terceiro para os tipos de campos: numero inteiro, texto, data, endereco, textogrande, sexo, contas ou, outro tipo de campo com uma ou mais opções e o último para dizer ao programa se é obrigatório o preenchimento do item no formulário. Complicado? Não. Logo você entende na prática como funciona. Então cada campo deverá ter essas 4 informações com a sua devida informação separados por um espaço. 

Tudo isso, mas tem a ver com os tipos de campos do PySimpleGUI e lógico poderia ter programado para mais. Mas quando você compreender melhor o código, você mesmo poderá mudar.

Dando continuidade.... Vamos clicar em "Enviar" e fazer rodar, os códigos serão apresentados automaticamente. Agora é partir para o abraço, ao clicar em gravar/enviar o site emite um download de um arquivo texto com os códigos do formulário. e só ver umas poucas instruções e renomear o arquivo dando-lhe a extensão py e estará pronto para o uso. É muito rápido e o efeito é excelente veja as figuras abaixo.





E já podemos executar o arquivo em seguida e começar a inserir os dados no banco de dados através do software instantâneo que acabamos de criar. Na figura abaixo está demonstrando a busca da data (quando usado este campo) no campo calendário para inserir a data de nascimento. No menu suspenso pode-se escolher outras combinações de cores para o formulário que serão aplicadas instantaneamente.

Veja em meu canal um  VÍDEO com um tipo de formulário-programa que pode ser feito.

Claro que tanta agilidade assim depende também de você ter o python instalado. Mas, antes, vamos aos detalhes, Por que gerar estes formulários? E depois vamos ver como instalar o python para você rodar seus formulário-programa.

Resumindo: Você cria campos (contendo 4 palavras cada) em um arquivo texto traz ao site e cola, também dá um nome ao banco de dados e aperta um botão o qual cria o programa-formulário. Simples assim.

Esta facilidade resumida acima permite:

- Agilidade na criação de um formulário em relação aos disponível nas planilhas.

- Facilidade em trabalho de equipe pois, permite outras pessoas participarem da produção de dados sem nem se dar conta que estão trabalhando com um banco de dados.

- Segurança de uso e das regras dos dados, ou a separação entre programação e uso. Assim você cria o seu formulário seguro e sem medo que e as pessoas não baguncem, estraguem ou mesmo "desprogramem" acidentalmente e você perca seu trabalho. Em suma: faça-as participar da sua planilha-mãe sem elas perceberem. :)

- Personalização em diversos níveis Que você personalize o formulário a partir dele mesmo, feito com vários tipos de cores, figuras e títulos bem é possibilidades de campos para contas, sexo, ou qualquer campos multipla escolha, enfim somadas as possibilidades do uso do banco de dados, tudo pode ser ampliado.

- Ganhar um dinheiro oferecendo soluções rápidas e eficientes - Cada pessoa tem uma expertise e assim pode desenvolver um programinha baseado em dados que agilize as atividades de seu nicho, você terá ideias incríveis a partir de suas planilhas

- Mas este trabalho não é somente destinado as pessoas que usam planilhas ou gostam de formulários.

- Caso seja um estudante de programação ou mesmo um dev possa ganhar muito tempo aproveitando o CRUD e a programação feita para personalizar ainda mais o programa-formulário os quais é justo que você possa vendê-los, pois a idealização de uso será sua.

Para fazer funcionar os scripts é necessário (prestar atenção nas figuras na hora de instalar o python):

1- Instalar o python vá em: https://www.python.org/downloads/

Assegure de na hora de instalar marcar os itens Add Python to PATH e instalar para todos os usuários:


Uma vez instalado o Python digite no cmd do windows: pip install sqlite3 e tecle enter


assim será instalado o Sqlite3.

 Após isto instale o PySimpleGui com o comando: pip install pysimpleGUI

Seguido instale o Pandas: py -m pip install pandas

e ainda instale a biblioteca Openxml: pip install openpyxl


Para quem usa instalar assim: pip install -r requirements.txt

Coloque o conteúdo abaixo dentro de um arquivo com o nome: requirements.txt 

et-xmlfile==1.1.0
numpy==1.23.5
openpyxl==3.0.10
pandas==1.5.2
PySimpleGUI==4.60.4
python-dateutil==2.8.2
pytz==2022.6
six==1.16.0

Maravilha! 

E agora volte ao início da matéria e gere seus códigos.

quarta-feira, 4 de maio de 2022

Tornando acessível: O libreoffice automatizado com Python através de macros


Quem começa a aprender Python começa a ficar fascinado com algumas facilidades da linguagem, assim como,  quem conhece a suíte Libreoffice também fica empolgado em poder criar automatizações (as famosas Macros) em seus texto, planilhas ou base de dados. A suíte Libreoffice permite usar várias linguagens de programação para criação de macros. A imagem abaixo exemplifica visualmente quais são elas e entre elas nosso aquela que é o assunto em questão neste post: a linguagem Python. Ou, O libreoffice automatizado com Python através de macros também.

Por que falo "também"?! Porque o python no libreoffice já vem uma versão da linguagem embutida e ele não está lá a toa. Mas como poderemos acessar esta funcionalidade poderosa? Ou melhor como torná-la acessível ao usuário?

Neste vídeo, vamos dar uma visão da macro python que vem junto com o Libreoffice e fica numa pasta específica, bem como, vamos ensinar a criar o local para os scripts (arquivos.py) do usuário do Libreoffice. Vai ser divertido "mandar" o Libreoffice fazer do jeitinho que queremos determinada tarefa... :) Quem sabe assim você inicia a sua trajetória de desenvolvedor de macros em python.

Vamos ao vídeo?!


sexta-feira, 3 de setembro de 2021

Uma Validação em cascata diferenciada no Libreoffice

 Como assim? "Diferenciada", por quê? As validações normalmente obedecem as itens de uma coluna por vez, a proposta aqui é aplicar uma cascata na coluna que tem uma numeração única, como uma relação de CPFs, e relacionar na seleção outras colunas com dados diferentes. Por exemplo: Em uma firma onde tenho muitos lançamentos de recibos de clientes (certamente compram, ou são atendidos, várias vezes), mas que cada tempo compram, ou querem orçar, uma coisa diferente. Como saber de todas as vezes que este cliente foi lançado em minha planilha? Veja o vídeo e adapte a sua necessidade!


sexta-feira, 9 de julho de 2021

Um Banco de questões em Libreoffice

Um banco de dados de questões para fazer uma prova para alunos, seria uma coisa interessante para os professores do ensino público?

Ele pode guardar questões com respostas discursivas e/ou questões com alternativas. Então num dado momento você tem umas vinte questões ou, mesmo cem e quer selecionar 10 para uma prova. Ele faz isso (com um clique somente, agora). Caso tenha faltado algum aluno no dia da prova, a prova dele ficou personalizada e diferenciada, basta entregar ;). Assim a cola se torna quase inviável, afinal o que se quer é que os alunos aprendam, para o próprio bem deles. O vídeo abaixo é o tutorial de uso e o arquivo (obs. acabo de atualizar para versão 2 - 12/07/2021, Leia as melhorias) pode ser baixado aqui. E o programa Libreoffice aqui (escolha a versão estável).


sábado, 12 de setembro de 2020

Libreoffice: Como aprender de maneira eficiente o uso de uma suíte de escritório?


Em nossas escolas, segundo o professor Manuel Castells, estamos na era Medieval mais preocupadas em transmitir o conhecimento do que criar conhecimentos. Hoje com a internet, todo o conhecimento humano está praticamente todo acessível para todas as pessoas que saibam ler e escrever, e logicamente, tenham a disposição o livre acesso à internet. Nesse sentido, o professor ressalta a importância da relação da nossa juventude atual com esse maravilhoso mundo digital, que se demonstra hábil na multitarefa e consegue buscar novos conhecimentos de maneira transversal se utilizando da grande rede e suas muitas “expertises” que são oferecidas pelos mais diversos grupos de discussão e de apoio. No nosso caso, somos o grupo que utiliza Libreoffice, uma pequena arvorezinha nesta selva que é a internet.

Neste sentido, pensei em oferecer um aprendizado da Suíte Libreoffice, de maneira a não ir pelo simples mostrar conceitos e funções localizadas (que tem importância também), mas a aprender a utilizar a suíte ante uma tarefa concreta e mais elaborada, usando muitos recursos dentro e até mesmo fora da suíte, como uma extensão para determinado propósito, para resolver uma parte do problema proposto.

Pierre Lévy, em uma entrevista, ao comentar sobre o uso da Internet no sentido de se poderia ajudar na democracia, diz que isso não seria simplesmente apertar um botão dizendo sim ou não como num voto eletrônico a distância e perfeitamente possível. Antes sim, com a capacidade de poder elaborar e propor problemas a serem resolvidos como a melhor contribuição para a democracia. Embora se referisse a questões sociais complexas envolvendo a sociedade em uma auto-resolução de problemas. O Mestre ilumina no sentido do uso das ferramentas, para tornar nossa vida melhor, mais segura, mais livre. Quanto mais conhecimento, mais democracia, mais liberdade, menos miséria. Sim, Levy relaciona que a tecnologia trará menos miséria.

De maneira análoga, resolver um problema prático ou concreto nos torna mais hábeis e criativos no uso de uma ferramenta. Assim conseguimos tanto aprender quanto gerar mais conhecimento nessa proposta. Então, criei três playlists com três cursos totalmente gratuitos no Youtube. Eles partem de três programas muito utilizados pela população em geral servindo ao corpo docente e discente de qualquer instituição ou mesmo para empresas e governos e suas mais variadas instituições de Estado.

E o interessante é que sim, este curso pode ter relevância social e econômica pois, estas ferramentas são de uso livre e gratuito e podem evitar verdadeiras fortunas serem gastas em licenças de Softwares (Suítes de escritórios) como o Office da Microsoft, por exemplo. Com isso, sobram mais recursos nas instituições para aplicar em outras áreas mais necessitadas, redistribuindo o gastos para um ganho social e logicamente, alguns setores públicos podem incentivar os desenvolvedores mediante políticas de incentivo ao desenvolvimento e sustentação destas ferramentas tão importantes.







O Curso Writer já está publicado na sua totalidade em vídeos. O outro de Calc, está sendo publicado e até o dia 15 de setembro de 2020 estará todo publicado em vídeo também. O terceiro vídeo do Libreoffice Base já está pronto e logo se dará o início de sua publicação. Se inscreva desde já, isso ajudará que mais conteúdos de formação circulem em nossa internet:  https://www.youtube.com/c/nomouse


O curso de Writer tem a tarefa concreta formatar uma Monografia ou TCC – Tese de Conclusão de Curso. Ele faz uso de muitos conhecimentos de assimilação relativamente fáceis, dividido em aulas, na sua maioria curtas de 5 minutos mais ou menos. Somente algumas aulas foram estendidas para um tempo um pouco maior. Ele compreende desde a busca dos arquivos para instalação em fonte confiável (dos mantenedores da Suíte), uma visão geral do funcionamento e depois a especificidades do Writer no desenvolver de uma formatação de texto que compreende o uso de diversas ferramentas e conhecimentos bem como a aplicação do zootero para citações bibliográficas. Serão ainda apresentados outros programas das suítes que se farão necessários para uma melhor exploração de seus recursos e de aprendizados transversais.



O Curso de Calc tem o objetivo de construir um Controle de estoque, onde os produtos serão lançados, controlados os seus preços e margem de lucro individuais, bem como serão visualizados pelas suas fotos, que deverão ser impressas em etiquetas para boa visualização dos clientes. Deverá ainda ter um histórico dos lançamentos para consultas futuras.

O Curso do Base vem de encontro a muitas perguntas sobre o seu uso que não é muito parecido com o Access da Microsoft. Assim, neste caso nos limitamos a uma introdução sobre o assunto, mas colocamos um pouco de transversalidade no uso com o Base e o Banco de Dados MariaDB.

quinta-feira, 3 de janeiro de 2019

LISTA SUSPENSA DINÂMICA EM CALC DO LIBREOFFICE

Já imaginou ter uma lista enorme de opções em uma lista suspensa e ter que ficar descendo dezenas ou até centenas de linhas para escolher uma. Existe uma maneira de simplificar isto? Sim.

Simples até (depois de feito), basta você usar uma célula auxiliar para digitar o início da palavra, o mínimo seria três letras, assim na lista suspensa aparecerão somente as palavras ou frases iniciadas com ela. Que tal?

Para isso:

Você nomeia um espaço onde estarão os dados, e
em uma célula você digitará a palavra que quer o autocompletar (a partir da terceira letra já aparecerão na lista suspensa). Você irá fazer uso da função = ESQUERDA(), usar a validação de dados e logicamente criar uma lista de argumentos que estarão funcionando em um "intervalo de células" definido por você e Pronto. Aqui um arquivo para você ver a mesma funcionando. E aqui o Vídeo mostrando o arquivo como é.

Fiz mais uma opção de arquivo, pois às vezes queremos que a combinação de letras esteja em qualquer parte da palavra e não simplesmente no começo, foi necessário usar outro tipo de função em conjunto que foi a função =SEERRO() para esconder os resultados que não condizem com a pesquisa e retornam uma lista de #VALOR!. No final deu tudo certo, confira neste arquivo. Notem que o link leva ao dropbox, mesmo que você não tenha uma conta lá é possível fazer o download do arquivo de exemplo sem se cadastrar. Bom proveito.

sexta-feira, 30 de junho de 2017

Macro Fácil

Inciando um pequeno banco de dados no Calc. Primeiro dizer que Banco de dados é maneira de falar, pois banco de dados verdadeiramente não se faz numa planilha. Mas com minhas constantes frustações no Base por causa do Java, ou seria minha frustração do Java que não funciona direito no Base? Enfim, sem divagações e direto ao ponto. Uma matéria minha anterior, em meu blog, versava sobre essa ideia que volta e meia me “pegava”, usar o Calc como formulário e para guardar dados, - Cara ele passa de um milhão de linhas para ser guardadas…. Veja a matéria em: http://betobyte.blogspot.com.br/2014/02/a-necessidade-e-mae-da-invencao-quem.html

Depois disso, o pessoal do Linux dizia que o Calc não abaixava a linha durante a macro automática. Resolvi pedir ajuda no https://ask.libreoffice.org/pt-br/questions/ aqui neste site tem muitos “feras” em Libreoffice. Lá eu lancei uma pergunta: https://ask.libreoffice.org/pt-br/question/58248/definir-o-endereco-de-colagem-na-macro/ a qual seria como eu colo um conteúdo numa dada célula? Olha só o que eu queria: queria escrever na Planilha2 usando sempre umas três linhas (para começar), no sentido vertical e a um comando de ok, recortá-las para a Planilha1 colando no sentido horizontal. Nessa “malandragem” eu teria a Planilha2 como Formulário e a Planilha1 como Banco de Dados, ou o a Planilha “BD” como mais tarde resolvi chamar em meu arquivo (mais evoluído) CRUD em Calc.

Em meu socorro veio o Colega Grafeno, aliás, uma das grandes coisas dessa comunidade são as grandes pessoas que não tem “pudores” em compartilhar seus conhecimentos. Temos uma comunidade muito boa e com espaço para muito mais pessoas de boa vontade. Depois de tantos preâmbulos vamos direto ao ponto a macro que o Grafeno produziu para mim e para o mundo todo :) acessar livremente.

Primeiro passo é ir no Calc e criar duas planilhas, Planilha1 e Planilha2. Depois, fazer uma macro qualquer de maneira automática:




digite algo em uma célula tire o cursor para outra célula e clique em “parar Gravação”:




irá aparecer esta janela:
Localize o arquivo (por enquanto com o nome) Sem título, clique nele e salve-a no arquivo mesmo, assim ele estrá sempre no arquivo quando copiá-lo por algum motivo. Normalmente, a primeira macro tem o nome de main e fica dentro do modulo1, mas para frente você irá descobrir melhor como funciona isto.

Agora vá em Menu, “Ferramentas, Macro, editar macros e lá clica no ícone de seu arquivo e à direita aparecerão as macros, depois é só acrescentar esta macro (copie e cole o conteúdo disponível no quadro abaixo), logo abaixo do “end sub” da recém-criada macro.

















Selecione a Macro Main e clique em Editar. Copie e cole o conteúdo abaixo do última linha “end sub”



Macro autoria: Grafeno


Sub TransferirDados
Dim oDoc As Object, oPlanOrigem As Object, oPlanDestino As Object
Dim sEndereco As String, sCol As String, sLin As String
Dim iLin As Integer

    'Obter as planilhas de origem e de destino
    oDoc = ThisComponent
    oPlanOrigem = oDoc.Sheets.getByName( "Planilha2" )
    oPlanDestino = oDoc.Sheets.getByName( "Planilha1" )

    ' Pegar o Endereço em B1 na planilha de origem
    sEndereco = oPlanOrigem.getCellRangeByName( "B1" ).String
    ' Pegar a coluna e a linha definidas no endereço 
    sCol = Left( sEndereco,1 )
    sLin = Mid( sEndereco,2,Len( sEndereco ) )


    'Verificar se é um endereço válido
    If  Ucase( sCol ) <> "A" Or Not IsNumeric( sLin ) Then 
        MsgBox "Por favor, forneça um endereço correto.", 16, "Erro"
        Exit Sub
    End If

    ' Transferir os valores
    iLin = cInt( sLin ) - 1 ' Menos 1 porque a posição das células começa com 0.
    oPlanDestino.getCellByPosition( 0,iLin ).String = Ucase(sEndereco)
    oPlanDestino.getCellByPosition( 1,iLin ).String = oPlanOrigem.getCellRangeByName( "B2" ).String
    oPlanDestino.getCellByPosition( 2,iLin ).Value = oPlanOrigem.getCellRangeByName( "B3" ).Value

    ' Limpar o conteúdo do intervalo B1:B3
    ' Argumentos do método clearContents:
    '  -> 1 para apagar valores
    '  -> 4 para apagar strings (texto)
    '  --> 1 + 4 = 5 apaga valores + string
    oPlanOrigem.getCellRangeByName( "B1:B3" ).clearContents( 5 )
End Sub



Sua macro está pronta e tudo que você digitar na células B1 a B3 (sentido da coluna) serão trasportadas para a Planilha1 no sentido horizontal (de linha).


Mas será que é qualquer coisa mesmo? Não, lá existirão células que só aceitarão números e outras só aceitarão strings (letras). No próximo vídeo e artigo analisaremos a anatomia dessa macro que tão gentilmente o Grafeno do ASK do Libreoffice nos disponibilizou. Veja mais em meu blog: http://betobyte.blogspot.com.br.

Baixe o arquivo de teste.
Assista ao meu vídeo:
Outros vídeos:

Matéria em destaque pelo editor.

Gere formulários PySimpleGui rapidamente para planilhas Excel, Libreoffice Calc e outros

CRUD  em BD e MENU - Gere programas completos rapidamente Vou te apresentar uma forma incrível de gerar aplicativos python em minutos a part...