Extraindo e modificando informação do Excel
Este tutorial ensinará a você como automatizar a coleta de informação e atualização de celulas do Excel
. Este tutorial pode ser usado como base para outros projetos de automação no Excel.
Neste tutorial iremos abordar como alterar valores na planilha em 3 cenários: Quando já conhecemos a posição (Linha e coluna) do dado que iremos atualizar, Quando queremos alterar somente um valor na última linha e, por último, quando queremos editar uma célula utilizando condicional de programação.
Preparando seu roteiro
Criando folder
Primeiramente vamos criar nossa estrutura de automação na pasta <MARVIN_HOME>\script
.
Como não usaremos visão computacional, não precisamos criar a pasta assets
, para salvar imagens de template.
No Windows Explorer, vá para a pasta <MARVIN_HOME>\script
- normalmente na instalação padrão MARVIN_HOME
é definido como C:\Program Files\Marvin
- e crie uma nova pasta chamada excel
.
Criando arquivo Excel
Para o nosso exemplo estaremos usando este arquivo .xlsx
:
Para o correto funcionamento é importante a utilização do arquivo Excel utilizado no exemplo. Você pode baixa-lo no link Arquivo Teste
E coloque ele na pasta C:\\Program Files\\Marvin\\script\\excel\\arquivo-teste.xlsx
Nosso objetivo
Temos que alterar a tabela para adicionar a nota restante na posição ``
Script de Automação
Abra um arquivo excel.xlsx
Agora podemos começar com nossa automação pelo Excel.
Primeiro de tudo, vamos abrir o Excel. Para fazer isso, vamos adicionar este código dentro do nosso arquivo script.mvn
.
script.mvn | |
---|---|
Agora vamos iniciar nossa automação, executando o script excel
. Para obter mais informações sobre como executar um script, consulte Running Scripts em Getting Started.
Esse script abrirá uma nova instância do Excel . Note que, ao rodar a automação, uma aba do Excel não aparecerá em tela. Isso é devido ao Marvin por padrão executar o Excel no modo invisível.
A função excel.open()
aceita como parametro excel_visible
, que inicialmente vem como False
. Portanto ao passarmos True
nesse parâmetro, dessa forma:
script.mvn | |
---|---|
Podemos visualizar o Excel e assim, caso necessário, acompanhar a automação.
Editando a planilha
Primeiro vamos editar a planilha quando ja sabemos a localização da celula que queremos mexer.
A Nota 2
do João deveria ser um 9. Já que sabemos que sua posição na tabela sempre sera C2
vamos chamar a função excel.update_cell
.
script.mvn | |
---|---|
Por padrão a função excel.open()
gera um parametro chamado $worksheet
que é a pagina do excel que vamos estar manuseando. No nosso caso apenas temos a worksheet Planilha1
entao nao precisamos nos preocupar.
Editando ultimo elemento
Para adicionar a Nota 2
de Jacinto vamos utilizar a função excel.get_dimensions()
, que ira nos retornar o parametro $last_cell
. No nosso exemplo a ultima celula do excel coincide com a Nota 2
de Jacinto. Logo vamos utilizar ela para atualizar a sua nota em branco para um 8.
script.mvn | |
---|---|
Editando de forma condicional
Agora que ja temos o começo e o final da tabela nós podemos tambem fazer uma varredura em busca de um elemento especifico. Vamos trocar as notas 5 dos alunos para um 2. Para isso vamos passar celula por celula até acharmos uma nota 5, e entao substituir por 2.
Vamos começar a partir da celula B2
(segunda linha) para evitar o cabeçalho e nomes dos alunos.
Para cada linha da planilha vamos analizar a celula B
e depois a C
. Em caso de ser uma nota 5 nos trocamos por uma 2 utilizando um excel.update_cell()
.
Da forma que esta escrito, caso nosso numero de alunos aumente ainda conseguimos escalonar automaticamente o codigo, ja que a função excel.last_line()
nos trara quandos alunos temos + 1 (devido ao cabeçalho).
Finalizando a automação
Após nossas 3 automações: troca sabendo posição; troca da ultima célula; troca com varredura, nós podemos salvar o excel usando a função excel.save()
:
script.mvn | |
---|---|
Lembrando que $workbook
é um parametro gerado quando chamamos a função excel.open()
E então nossa planilha terminará assim: