2015-11-19 17 views
5

È possibile utilizzare il mio script jquery in un foglio di calcolo Excel? Sto cercando di utilizzare la geolocalizzazione per ottenere la funzionalità di un indirizzo automatico. Sono in grado di farlo tramite html. http://jsfiddle.net/bobrierton/13ffw6ko/ Ma sono curioso di sapere come raggiungere lo stesso obiettivo in un foglio Excel.Esegui script di geolocalizzazione JQuery in fogli di calcolo Excel

Desidero che le colonne del foglio di calcolo siano Indirizzo, Città, Stato, Codice postale e quindi ogni volta che viene fatto clic su un indirizzo, desidero che venga eseguito il prefill e fornisca consigli come la mia versione html qui.

Qualcuno può aiutare come può essere possibile.

var placeSearch, autocomplete; 
 
var componentForm = { 
 
    route: 'long_name', 
 
    locality: 'long_name', 
 
    administrative_area_level_1: 'short_name', 
 
    postal_code: 'short_name' 
 
}; 
 

 
function initialize() { 
 
    // Create the autocomplete object, restricting the search 
 
    // to geographical location types. 
 
    autocomplete = new google.maps.places.Autocomplete(
 
    /** @type {HTMLInputElement} */ 
 
    (document.getElementById('autocomplete')), { 
 
     types: ['geocode'] 
 
    }); 
 
    // When the user selects an address from the dropdown, 
 
    // populate the address fields in the form. 
 
    google.maps.event.addListener(autocomplete, 'place_changed', function() { 
 
    fillInAddress(); 
 
    }); 
 
} 
 

 
// [START region_fillform] 
 
function fillInAddress() { 
 
    // Get the place details from the autocomplete object. 
 
    var place = autocomplete.getPlace(); 
 

 
    for (var component in componentForm) { 
 
    document.getElementById(component).value = ''; 
 
    document.getElementById(component).disabled = false; 
 
    } 
 

 
    // Get each component of the address from the place details 
 
    // and fill the corresponding field on the form. 
 
    for (var i = 0; i < place.address_components.length; i++) { 
 
    var addressType = place.address_components[i].types[0]; 
 
    if (componentForm[addressType]) { 
 
     var val = place.address_components[i][componentForm[addressType]]; 
 
     document.getElementById(addressType).value = val; 
 
    } 
 
    } 
 
    //var keys=[];for (var key in place.address_components[0]) keys.push(key); 
 
    //alert(keys): 
 
    document.getElementById('autocomplete').value = 
 
    place.address_components[0]['long_name'] + ' ' + 
 
    place.address_components[1]['long_name']; 
 
    
 
    /*document.getElementById('route').value = (document.getElementById('chbSame').checked ? document.getElementById('autocomplete').value : '');*/ 
 
    document.getElementById('route').value = ''; 
 
} 
 

 
// [START region_geolocation] 
 
// Bias the autocomplete object to the user's geographical location, 
 
// as supplied by the browser's 'navigator.geolocation' object. 
 
function geolocate() { 
 
    if (navigator.geolocation) { 
 
    navigator.geolocation.getCurrentPosition(function(position) { 
 
     var geolocation = new google.maps.LatLng(
 
     position.coords.latitude, position.coords.longitude); 
 
     var circle = new google.maps.Circle({ 
 
     center: geolocation, 
 
     radius: position.coords.accuracy 
 
     }); 
 
     autocomplete.setBounds(circle.getBounds()); 
 
    }); 
 
    } 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<script src="https://maps.googleapis.com/maps/api/js?v=3.exp&libraries=places"></script> 
 
    <body onload="initialize()"> 
 
    <div id="locationField"> 
 
     <div class="clearfix"> 
 
    \t <label for="street_<cfoutput>#Add#</cfoutput>">Mailing Address 1:</label> 
 
    \t <input type="text" name="street_#Add#" validateat="onSubmit" validate="maxlength" required="yes" id="autocomplete" size="54" maxlength="120" message="Please enter owner #Peoplecount#'s mailing address." onFocus="geolocate()" value=""> 
 
    </div> 
 

 
    <div class="clearfix"> 
 
    \t <label for="m2street_<cfoutput>#Add#</cfoutput>">Mailing Address 2:</label> 
 
    \t <input type="text" name="m2street_#Add#" validateat="onSubmit" required="no" validate="maxlength" id="route" size="54" maxlength="120" value=""> 
 
    </div> 
 
     
 
    <div class="clearfix"> 
 
    \t <label for="city_<cfoutput>#Add#</cfoutput>">City:</label> 
 
    \t <input type="text" name="city_#Add#" validateat="onSubmit" validate="maxlength" required="yes" id="locality" size="30" maxlength="50" message="Please enter owner #Peoplecount#'s mailing city." value=""> 
 
     </div> 
 
     
 
     <div class="clearfix"> 
 
    \t <label for="state_<cfoutput>#Add#</cfoutput>">State:</label> 
 
    \t <input type="text" name="state_#Add#" required="yes" id="administrative_area_level_1" size="8" maxlength="12" message="Please enter owner #Peoplecount#'s mailing state." value=""> 
 
    </div> 
 
      
 
      <div class="clearfix"> 
 
    \t <label for="street_<cfoutput>#Add#</cfoutput>">Zip Code:</label> 
 
    \t <input type="text" name="postal_#Add#" required="yes" id="postal_code" size="8" maxlength="12" message="Please enter owner #Peoplecount#'s mailing zip code." value=""> 
 
    </div> 
 
     </div>

+0

Esistono alcune tecniche per l'esecuzione di javascript in Excel descritte in queste risposte: http://stackoverflow.com/questions/20171885/excel-macros-with-javascript http://stackoverflow.com/questions/848246/how- can-i-use-javascript-within-an-excel-macro – Starscream1984

+0

stai dicendo che è possibile? Non riesco a trovarlo da nessuna parte. Sono stato in grado di trovare come creare una mappa di esso ma non come fare il riempimento automatico dell'indirizzo –

+0

Sembra teoricamente possibile, ma probabilmente non facile. Sono piuttosto curioso di sapere perché vuoi farlo in primo luogo? – Starscream1984

risposta

0

E 'possibile usare il mio script jQuery in un foglio di calcolo Excel? Sto cercando di utilizzare la geolocalizzazione per inserire la funzionalità di un indirizzo automatico.

No. Lo script si basa sull'API di Google Maps e questo richiederà il corretto funzionamento del contesto del browser.

Mentre è possibile eseguire JavaScript in un host di script di Windows, è necessario molto più di JavaScript. È necessaria un'API del browser, completa di API di geolocalizzazione e AJAX. Non lo troverai in Excel.

Puoi comunque essere creativo. Puoi fare richieste HTTP con il tuo script (anche se non il normale modo AJAX). Probabilmente puoi anche eseguire un'applicazione esterna per ottenere la posizione per te.

Problemi correlati