Se você utiliza o Excel da Microsoft, provavelmente está acostumado a utilizar e importar dados de fontes externas, por exemplo arquivos CSV. Conseguimos ter essa mesma facilidade no Google Planilhas utilizando o Google Apps Script.

O que é Google Apps Script?

O Apps Script é uma plataforma de script desenvolvida pela Google para o desenvolvimento de aplicativos leves na plataforma G Suite. É baseado em JavaScript 1.6, mas também inclui algumas funcionalidades do 1.7, 1.8 e um subconjunto da API do ECMAScript 5. Os projetos do Apps Script são executados na infraestrutura cloud da Google. De acordo com a própria Google, o Apps Script “fornece maneiras fáceis de automatizar tarefas nos produtos e serviços de terceiros”. O Apps Script também está disponível para o Google Docs e Apresentações.

Você encontra todos os scripts deste tutorial na planilha de exemplo, faça uma cópia em seu drive para conseguir visualizar os scripts e editar a planilha.

Confira também: Transferindo arquivos por SFTP no Google Cloud usando o FileZilla

Acessando o Apps Script

Para acessar o Google Apps Scripts, crie uma planilha em branco ou copie a planilha de exemplo; Clique em Ferramentas > Editor de script:

Google Planilhas

Uma nova aba com o editor de texto do Google Apps Script abrirá:

Editor de texto do Google Apps Script

Criando os Scripts

Podemos facilmente importar arquivos CSV nas Planilhas do Google usando a função Utilities.parseCsv() do Google Apps Script. Os códigos abaixo mostram como importar e exibir os dados de um arquivo CSV por URL, salvo no Google Drive ou como anexo no Gmail.

Autorizando o Google Apps Scripts

Pra todos os exemplos abaixo, ao executar os scripts precisamos autorizar o Google Apps Scripts para acessar as algumas funcionalidades das APIs do Google.

Google Apps Scripts Autorização - 1

Provavelmente, por seu script não ser ainda homologado, a tela abaixo aparecerá:

Google Apps Scripts Autorização - 2

Clique em Mostrar Avançado > Acessar Projeto e continue para a autorização:

Google Apps Scripts Autorização - 3

Importando o arquivo CSV de um anexo de email no Gmail

function importarCSVDoGmail() {
  
  var emails = GmailApp.search("from:[email protected]"); // Filtramos nossos emails
  var email = emails[0].getMessages()[0]; // Pegamos a primeira mensagem da thread do email
  var anexo = email.getAttachments()[0]; // Pegamos o primeiro anexo do email
  
  // Validamos se esse anexo é um CSV
  if (anexo.getContentType() === "text/csv") {
    
    var planilha = SpreadsheetApp.getActiveSheet(); // Selecionamos o objeto da planilha ativa
    var csv = Utilities.parseCsv(planilha.getDataAsString(), ",");
    
    // Limpamos o conteúdo da planilha antes de importar os dados
    sheet.clearContents().clearFormats();
    // Importamos todos os dados a partir da célula A1
    sheet.getRange(1, 1, csv.length, csv[0].length).setValues(csv);
  } 
}

Em nossa variável de emails vamos realizar um busca de filtro em nosso Gmail para retornar o primeiro e-mail correspondente, podemos utilizar qualquer operador de busca do Gmail dentro da função GmailApp.search("operador:busca"), confira aqui a lista completa de operadores.

Importando o arquivo CSV do Google Drive

function importarCSVDoGoogleDrive() {

    var arquivo = DriveApp.getFilesByName("data.csv").next();
    var csv = Utilities.parseCsv(arquivo.getBlob().getDataAsString());
    var planilha = SpreadsheetApp.getActiveSheet();
    planilha.getRange(1, 1, csv.length, csv[0].length).setValues(csv);

}

No exemplo acima estamos buscando o arquivo data.csv que está na raiz do Google Drive, altere esse caminho conforme sua necessidade.

Baixar e importar o arquivo CSV de um website externo

function importarCSVDaWeb() {

    // URL de download do arquivo CSV
    var csvUrl = "https://marquesfernandes.com/wp-content/uploads/2020/01/exemplo_csv.csv";
    var csv = UrlFetchApp.fetch(csvUrl).getContentText();
    var dados = Utilities.parseCsv(csv);

    var planilha = SpreadsheetApp.getActiveSheet();
    planilha.getRange(1, 1, dados.length, dados[0].length).setValues(dados);

}

Lembrando que o serviço UrlFetchApp faz apenas requisições HTTP, não sendo possível ainda conectar em servidores FTP.

0 0 votos
Nota do Artigo
Author

Um nerd nada tradicional… Desenvolvedor web full-stack, escritor amador e inventor nas horas vagas. Apaixonado por tecnologia e entusiasmado por projetos de código aberto!

Subscribe
Notify of
guest
9 Comentários
newest
oldest most voted
Inline Feedbacks
View all comments
Filipe Almeida do Nascimento
Filipe Almeida do Nascimento
17 dias atrás

Boa tarde
Gostaria de criar um botão de importação, onde ele busca o arquivo em meu computador e carrega para o Sheets

Bruno
Bruno
11 meses atrás

Eu gostaria de importar um arquivo .xls do e-mail para o google planilha. Já tentei várias formas, mas não consegui. Você pode ajudar?

rodrigo
rodrigo
1 ano atrás

bacana, mas como importar arquivos de uma máquina desktop? Exemplo: com o GAS, importar arquivos de c://meus documentos/arquivo.xlsx

Lucas
Lucas
1 ano atrás

Como importar dados de uma planilha google para google docs?

Thiago Goncalves
1 ano atrás

Ola,
Muito bom seu post, eu estava precisando algo parecido para ler arquivos do drive.
Acabei testando o do gmail também mas por alguma razão quando ele encontra o anexo, vi no Logger que ele lê como application/excel nao como texto/csv e por isso ele não sobe o arquivo pra planilha. Sabe se tem como contornar isso?

9
0
Would love your thoughts, please comment.x
()
x