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:

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

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.

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

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

Importando o arquivo CSV de um anexo de email no Gmail

function importarCSVDoGmail() {
  
  var emails = GmailApp.search("from:henrique@marquesf.com"); // 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.

5 1 voto
Nota do Artigo
Subscribe
Notify of

9 Comentários
newest
oldest most voted
Inline Feedbacks
View all comments
Filipe Almeida do Nascimento
3 anos 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
4 anos 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
4 anos 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
4 anos atrás

Como importar dados de uma planilha google para google docs?

4 anos 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?

wpDiscuz
9
0
Would love your thoughts, please comment.x