Transcript
Page 1: Google apps script - Parte - 1

Google Apps Script

Prof. Sérgio Souza Costa

Aprenda na prática - Parte 1

Page 2: Google apps script - Parte - 1

Sobre mim

Sérgio Souza CostaProfessor - UFMADoutor em Computação Aplicada (INPE)

[email protected]

https://sites.google.com/site/profsergiocosta/home

https://twitter.com/profsergiocosta

http://gplus.to/sergiosouzacosta

http://www.slideshare.net/skosta/presentations?order=popular

Page 3: Google apps script - Parte - 1

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.

Page 4: Google apps script - Parte - 1

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

Page 5: Google apps script - Parte - 1

Integração entre produtos

Gmail

Sites

SpreadsheetCalendar

Documents

Translate

Maps

Contacts

Apps Script

Google API

Page 6: Google apps script - Parte - 1

Breve histórico

Fonte: Arun Nagarajan

Page 7: Google apps script - Parte - 1

Alexandre Jacquet

[email protected]

Breno Araújo

[email protected]

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)

Page 8: Google apps script - Parte - 1

Resumo dos serviços

https://developers.google.com/apps-script/reference/

Fonte: Arun Nagarajan

Page 9: Google apps script - Parte - 1

Parte 1Google DocumentsGoogle Planilha

Parte 2WebappsGoogle Sites

Roteiro

Page 10: Google apps script - Parte - 1

Parte 1Google DocumentsGoogle Planilha

Parte 2WebappsGoogle Sites

Roteiro

Antes de seguir, será necessário ter uma conta na Google.

Page 11: Google apps script - Parte - 1

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.

Page 12: Google apps script - Parte - 1

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

Page 13: Google apps script - Parte - 1

Selecione:

Ferramenta -> Editor de Scripts

Page 14: Google apps script - Parte - 1

Selecione:

Ferramenta -> Editor de Scripts

Escolha projeto em branco

Page 15: Google apps script - Parte - 1

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}

Page 16: Google apps script - Parte - 1

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

Page 17: Google apps script - Parte - 1

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 !!!

Page 18: Google apps script - Parte - 1

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

Page 19: Google apps script - Parte - 1

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.

Page 20: Google apps script - Parte - 1

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.

Page 22: Google apps script - Parte - 1

pegando dados

2. Selecione “Gerenciador de scripts”

Lendo valores da planilha

Page 23: Google apps script - Parte - 1

pegando dados

2. Selecione “Gerenciador de scripts”

3. Click em executar

Lendo valores da planilha

Page 24: Google apps script - Parte - 1

pegando dados

2. Selecione “Gerenciador de scripts”

4. Click em Editar

Lendo valores da planilha

Page 25: Google apps script - Parte - 1

pegando dados

2. Selecione “Gerenciador de scripts”

5. Click em Registros

Lendo valores da planilha

Page 26: Google apps script - Parte - 1

pegando dados

2. Selecione “Gerenciador de scripts”

5. Click em Registros

Lendo valores da planilha

Page 27: Google apps script - Parte - 1

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

Page 28: Google apps script - Parte - 1

Criando documentos

Estrutura de um documento.

Page 29: Google apps script - Parte - 1

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.

Page 30: Google apps script - Parte - 1

Substituindo texto

Page 31: Google apps script - Parte - 1

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

Page 32: Google apps script - Parte - 1

Integração - planilha, documento e drive

Page 33: Google apps script - Parte - 1

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

Page 34: Google apps script - Parte - 1

Referências

1. Google Apps Script Reference http://www.google.com/script/start/