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 && (!cidadeAtual || !cepAtual)) { // Verifica se há coordenadas e se os campos estão vazios
const dados = buscarCidadeECep(latLong);
if (dados) {
if (!cidadeAtual && dados.cidade) {
sheet.getRange(i + 1, 7).setValue(dados.cidade); // Preenche a coluna G (índice 7)
}
if (!cepAtual && 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}&key=${apiKey}`;
const response = UrlFetchApp.fetch(url);
const data = JSON.parse(response.getContentText());
if (data.status === 'OK' && 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
}
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:
O que fazia?
buscarCidade(latLong) utilizava a API do Google Maps para retornar apenas o nome da cidade.Vantagens:
Limitações:
O que faz?
buscarCidadeECep(latLong), que retorna um objeto contendo tanto o nome da cidade quanto o CEP, extraídos da resposta da API do Google Maps.Vantagens:
Como o novo código faz isso?
buscarCidadeECep extrai tanto o nome da cidade quanto o CEP da resposta da API, ao invés de retornar apenas um único valor.| 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 |
Código Anterior:
Código Atualizado:
Se precisar de mais explicações ou personalizar Escreva no meu canal 😊
