Post on 21-Jan-2015
description
Google Apps Script
Prof. Sérgio Souza Costa
Aprenda na prática - Parte 1
Sobre mim
Sérgio Souza CostaProfessor - UFMADoutor em Computação Aplicada (INPE)
prof.sergio.costa@gmail.com
https://sites.google.com/site/profsergiocosta/home
https://twitter.com/profsergiocosta
http://gplus.to/sergiosouzacosta
http://www.slideshare.net/skosta/presentations?order=popular
O que é Google Apps Script (GAS)?
Google Apps Script é um ambiente de desenvolvimento JavaScript na nuvem que provê um modo fácil de automação de tarefas que usem os produtos da Google integrado com serviços de terceiros.
O que é Google Apps Script (GAS)?
Google Apps Script é um ambiente de desenvolvimento JavaScript na nuvem que provê um modo fácil de automação de tarefas que usem os produtos da Google integrado com serviços de terceiros.
No link abaixo tenho disponível uma aula detalhada sobre JavaScript:
http://www.slideshare.net/skosta/j-12591397
Integração entre produtos
Gmail
Sites
SpreadsheetCalendar
Documents
Translate
Maps
Contacts
Apps Script
Google API
Breve histórico
Fonte: Arun Nagarajan
Alexandre Jacquet
alejacquet@gmail.com
Breno Araújo
breno.araujo@acm.org
Agradecimento ao Alexandre Jacket por ter cedido a apresentação no link abaixo:
http://www.slideshare.net/alejacquet/google-appsscript-overview-22980983
Abram esta apresentação
Introdução (overview)
Resumo dos serviços
https://developers.google.com/apps-script/reference/
Fonte: Arun Nagarajan
Parte 1Google DocumentsGoogle Planilha
Parte 2WebappsGoogle Sites
Roteiro
Parte 1Google DocumentsGoogle Planilha
Parte 2WebappsGoogle Sites
Roteiro
Antes de seguir, será necessário ter uma conta na Google.
Criando funções para planilha
https://developers.google.com/apps-script/execution_custom_functions
Crie uma função que recebe um ou mais valores como argumento, de uma ou mais células.
Estes argumentos serão usados dentro da função para gerar o resultado, que será retornado pela função para a célula que chamou a função.
function binary2decimal (num) { var str = new String(num) var tam = str.length - 1 var dec = 0 for (var i = tam; i >=0 ; i--) { dec = dec + ( str[tam-i] * (Math.pow(2, i)) ) } return dec}
Criando funções para planilha
Selecione:
Ferramenta -> Editor de Scripts
Selecione:
Ferramenta -> Editor de Scripts
Escolha projeto em branco
Selecione:
Ferramenta -> Editor de Scripts
Copie o código abaixo no editor.
function binary2decimal (num) { var str = new String(num) var tam = str.length - 1 var dec = 0 for (var i = tam; i >=0 ; i--) { dec = dec + ( str[tam-i] * (Math.pow(2, i)) ) } return dec}
Selecione:
Ferramenta -> Editor de Scripts
Copie o código abaixo no editor.
function binary2decimal (num) { var str = new String(num) var tam = str.length - 1 var dec = 0 for (var i = tam; i >=0 ; i--) { dec = dec + ( str[tam-i] * (Math.pow(2, i)) ) } return dec}
Para quem não fez os passos anteriores, pode abrir o link abaixo e criar uma cópia do arquivo.
https://docs.google.com/spreadsheet/ccc?key=0Avv93GPSzr6FdHpiT29mT3EyajVoWUFNSTFfaDVMdVE&usp=sharing
Atividade, codifique uma função chamada toDecimal, que usa dois argumento, um número e a base. Observe que basta adaptar o código anterior para receber mais um parâmetro (base) e este ser usado na expressão, como abaixo:
dec = dec + ( str[tam-i] * (Math.pow(base, i)) )
Criando funções para planilha
Mãos a obra !!!
function minhaMedia(range){ var soma = 0 for (var i in range) { soma+= parseFloat(range[i]) } return soma / range.length }
Criando funções para planilha
Função sobre uma faixa de valores
Uma faixa de valores será enviada com um vetor (uma dimensão) ou matriz (duas dimensões).
range é um vetor
Criando funções para planilha
Mãos a obra !!!
Atividade, codifique uma função que retorne o número de alunos aprovados. Media das 3 notas deve ser maior ou igual a 7. Observe que neste caso temos uma matriz.
function printProductInfo() {var sheet = SpreadsheetApp.getActiveSheet();var data = sheet.getDataRange().getValues();
for (var i = 0; i < data.length; i++) {Logger.log("Nome: " + data[i][0]);Logger.log("Preço: " + data[i][1]);
}}
Lê todos os valores da planilha ativa como uma matriz.
Lendo valores da planilha
A informação é capturada através de logs (registros). Útil para depurar.
pegando dados
1. Abrir a seguinte planilha: https://docs.google.com/spreadsheet/ccc?key=0Avv93GPSzr6FdDhHc29PX29iNm5seU50cTlvYTZwSlE&usp=sharing
Lendo valores da planilha
pegando dados
2. Selecione “Gerenciador de scripts”
Lendo valores da planilha
pegando dados
2. Selecione “Gerenciador de scripts”
3. Click em executar
Lendo valores da planilha
pegando dados
2. Selecione “Gerenciador de scripts”
4. Click em Editar
Lendo valores da planilha
pegando dados
2. Selecione “Gerenciador de scripts”
5. Click em Registros
Lendo valores da planilha
pegando dados
2. Selecione “Gerenciador de scripts”
5. Click em Registros
Lendo valores da planilha
function createDoc() { var doc = DocumentApp.create('Sample Document'); var body = doc.getBody(); var rowsData = [['Plants', 'Animals'],
['Ficus', 'Goat'], ['Basil', 'Cat'], ['Moss', 'Frog']]; body.insertParagraph(0, doc.getName()) .setHeading(DocumentApp.ParagraphHeading.HEADING1); table = body.appendTable(rowsData); table.getRow(0).editAsText().setBold(true);}
1. Abra o script no link abaixo e click executar: https://script.google.com/d/1B8zP8U00Kl84Vlp8oIEKeV-00bQETz_U4rraHSdJYdvu7CfbGT6NR5ij/edit?usp=sharing
Criando documentos
Criando documentos
Estrutura de um documento.
Spreadsheet Documents
Integração - planilha e documento
Script para criação de listas de exercícios no google docs
Professores estão sempre elaborando listas de exercícios, consumindo um tempo nesta atividade. Esta é uma dica para os professores que querem automatizar esta tarefa, bem como começar a usar scripts nos aplicativos google. Completado este passos, você conseguira criar uma base de questões em uma planilha e um script que cria uma dada lista de exercícios com uma dada quantidade de questões.http://sergioscosta.blogspot.com.br/2013/08/script-para-criacao-de-listas-de.html
Façam o exercício do blog.
Substituindo texto
var ui = DocumentApp.getUi();
function onOpen() { ui.createMenu('Mais') .addItem('Atualiza', 'atualiza') .addToUi();}
function atualiza() { var result = ui.prompt('Atualizando o nome', 'Entre com o nome do aluno:', ui.ButtonSet.OK_CANCEL); if (result.getSelectedButton() == ui.Button.OK) { var name = result.getResponseText() var body = DocumentApp.getActiveDocument() .getBody();
body.replaceText('{nome}', name); } }
Substituindo texto
1. Abra e crie uma cópia do documento do link abaixo:https://docs.google.com/document/d/1Wrzhe7Axf8LlQxm2t4mpitd_XOvfHVlL1D5q7yzz5Ec/edit?usp=sharing
2. Selecione o menu Mais -> Atualiza
Código que faz a subsituição
Integração - planilha, documento e drive
function copiaCertificados() { var file = DriveApp.getFileById(
"1gE4V_0GZUx4byQYQywyg3reqRpF_xLr_hQZKCD_uPbo") var sheet = SpreadsheetApp.getActive(); var data = sheet.getDataRange().getValues(); for (var i in data) {
var file2 = file.makeCopy("certificado_"+data[i][0])var body = DocumentApp.openById(file2.getId()).getBody(); body.replaceText('{nome}', data[i][0]);
}}
Integração - planilha, documento e drive
1. Abra e execute o documento do link abaixo:https://docs.google.com/spreadsheet/ccc?key=0Avv93GPSzr6FdGJWQ3FIaDk4VXpWTE1iVVdySFN5dVE&usp=sharing
Substitua pelo id da cópia do arquivo criado anteriormente
Referências
1. Google Apps Script Reference http://www.google.com/script/start/