Código JavaScripts

				
					function preencherCidadeECep() {
  const sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
  const rows = sheet.getDataRange().getValues();
  
  for (let i = 1; i < rows.length; i++) { // Começa da linha 2 (ignorando o cabeçalho)
    const latLong = rows[i][3]; // Coluna D (índice 3)
    const cidadeAtual = rows[i][6]; // Coluna G (índice 6)
    const cepAtual = rows[i][21]; // Coluna V (índice 21)

    if (latLong &#038;&#038; (!cidadeAtual || !cepAtual)) { // Verifica se há coordenadas e se os campos estão vazios
      const dados = buscarCidadeECep(latLong);
      if (dados) {
        if (!cidadeAtual &#038;&#038; dados.cidade) {
          sheet.getRange(i + 1, 7).setValue(dados.cidade); // Preenche a coluna G (índice 7)
        }
        if (!cepAtual &#038;&#038; dados.cep) {
          sheet.getRange(i + 1, 22).setValue(dados.cep); // Preenche a coluna V (índice 22)
        }
      }
    }
  }
}

function buscarCidadeECep(latLong) {
  const apiKey = 'SUA_CHAVE_API_AQUI'; // Insira sua chave de API do Google Maps
  const url = `https://maps.googleapis.com/maps/api/geocode/json?latlng=${latLong}&#038;key=${apiKey}`;
  
  const response = UrlFetchApp.fetch(url);
  const data = JSON.parse(response.getContentText());

  if (data.status === 'OK' &#038;&#038; data.results.length > 0) {
    const components = data.results[0].address_components;

    let cidade = null;
    let cep = null;

    for (let component of components) {
      if (component.types.includes('locality')) {
        cidade = component.long_name; // Nome da cidade
      }
      if (component.types.includes('postal_code')) {
        cep = component.long_name; // Código postal (CEP)
      }
    }

    return { cidade, cep };
  }
  return null; // Retorna nulo se nenhum dado for encontrado
}

				
			

Diferenças Entre os Dois Códigos: Tutorial

Os dois códigos têm como objetivo preencher dados na planilha do Google com base em coordenadas de latitude e longitude, mas o novo código é uma evolução que adiciona a funcionalidade de buscar dois dados diferentes (Cidade e CEP), enquanto o anterior preenchia apenas a Cidade. Vou explicar as diferenças passo a passo:


1. Código Anterior

  • O que fazia?

    • Preenchia apenas a coluna Cidade (G) com o nome da cidade correspondente às coordenadas fornecidas na coluna Lat/Long (D).
    • A função buscarCidade(latLong) utilizava a API do Google Maps para retornar apenas o nome da cidade.
    • Colunas utilizadas:
      • D (Lat/Long): Entrada com as coordenadas.
      • G (Cidade): Resultado preenchido.
  • Vantagens:

    • Simples e funcional para quem precisa apenas do nome da cidade.
    • Menor complexidade no código.
  • Limitações:

    • Não preenchia outras informações úteis, como o CEP (Código Postal).
    • Caso o usuário precisasse de mais dados, seria necessário modificar o código.

2. Código Atualizado

  • O que faz?

    • Preenche duas colunas:
      • Cidade (G): Com o nome da cidade.
      • CEP (V): Com o código postal.
    • Utiliza a função buscarCidadeECep(latLong), que retorna um objeto contendo tanto o nome da cidade quanto o CEP, extraídos da resposta da API do Google Maps.
    • Colunas utilizadas:
      • D (Lat/Long): Entrada com as coordenadas.
      • G (Cidade): Resultado com o nome da cidade.
      • V (CEP): Resultado com o CEP.
  • Vantagens:

    • Mais completo, pois traz tanto o nome da cidade quanto o CEP.
    • Flexível para quem precisa de múltiplos dados a partir de coordenadas.
  • Como o novo código faz isso?

    1. Mudança na função de busca:
      • A função buscarCidadeECep extrai tanto o nome da cidade quanto o CEP da resposta da API, ao invés de retornar apenas um único valor.
    2. Atualização em múltiplas colunas:
      • O novo código verifica se as colunas Cidade (G) e CEP (V) já têm valores antes de preenchê-las.
    3. Maior reutilização da API:
      • A resposta da API é utilizada para capturar mais informações úteis (não apenas a cidade, mas também o CEP).

Resumo das Diferenças

Aspecto Código Anterior Código Atualizado
Colunas Afetadas Apenas “Cidade” (G) “Cidade” (G) e “CEP” (V)
Função de Busca buscarCidade buscarCidadeECep
Dados Extraídos Nome da cidade Nome da cidade e código postal
Complexidade Simples Moderada, mas mais funcional

Quando Usar Cada Código

  1. Código Anterior:

    • Ideal se você precisa apenas do nome da cidade.
    • Bom para casos simples e para usuários que não precisam de mais detalhes além da cidade.
  2. Código Atualizado:

    • Perfeito para quem quer múltiplos dados (Cidade e CEP) baseados nas coordenadas.
    • Mais completo, especialmente útil para análises ou relatórios que necessitam de informações mais detalhadas.

Se precisar de mais explicações ou personalizar Escreva no meu canal 😊

Rolar para cima