Webpaginas maken met Excel Web App mashups
Pagina's in dit artikel
Helaas werkt de functionaliteit besproken in dit artikel niet meer.
De inhoud van web pagina besturingselementen in het Excel bestand plaatsen
Zou het niet handig zijn om een web formulier te kunnen maken waar gebruikers gegevens in kunnen voeren en vervolgens deze invoer te kunnen gebruiken om de Excel Web App wordt bijgewerkt met de inhoud van het web formulier. Hoe dat moet wordt hieronder beschreven.
Voeg een formulier in met enkele besturingselementen
Om gegevens uit een tekstvak in je Excel bestand te krijgen moet er natuurlijk eerst een formulier op je web pagina geplaatst worden. Deze HTML code is daarvoor nodig:
<form name="ChangeInput">
Fase verschil (graden)
<input name="Phase" size="18" style="width: 112px" />
Frequentie verhouding
<input name="Freq" size="18" style="width: 112px" />
<input onclick="JavaScript:SetValuesInSheet();" type="button"
value="Grafiek bijwerken" />
</form>
Zoals je kan zien, is het klik event van de knop ingesteld om de Javascript functie SetValuesInSheet aan te roepen.
Data in een cel invoeren
De SetValuesInSheet functie is relatief kort:
function SetValuesInSheet()
{
// Get a reference to where we need to write
ewaCht.getActiveWorkbook().getRangeA1Async('b1:b2', getRangeA1Callback,
null);
}
Zoals je kan zien, vragen we eerst Ewa om een verwijzing naar het celbereik B1:B2 in het actieve werkblad. Dit gebeurt hier asynchroon, dus hebben we een call-back functie nodig: getRangeA1Callback. Hieronder weergegeven :
function getRangeA1Callback(asyncResult)
{
// getRangeA1Async returns a range object
through the AsyncResult object.
var range = asyncResult.getReturnValue();
var values = new Array(2);
values[0] = new Array(1);
values[1] = new Array(1);
var control = document.ChangeInput.Phase;
values[0][0] = control.value;
control = document.ChangeInput.Freq;
values[1][0] = control.value;
// Now send the array to the range.
range.setValuesAsync(values,Dummy,null);
}
Als je de data naar een cel wil schrijven, heb je altijd een array nodig, zoals bovenstaande code toont.
Omdat setValuesAsync -wederom- asynchroon is, is er een callback noodzakelijk, waarvoor ik een lege functie genaamd Dummy (hier niet weergegeven) heb gebruikt. Dummy kan door "null" worden vervangen als je geen verdere acties nodig hebt.
Werkt dit nou? Bekijk de volgende pagina!
Veelgestelde vragen
Hoe kan ik een webformulier maken om gegevens in te voeren die de Excel Web App bijwerken?
Welke HTML-code is nodig om een formulier met besturingselementen op een webpagina te plaatsen?
Hoe wordt het klik event van een knop ingesteld om een JavaScript functie aan te roepen?
Wat doet de functie SetValuesInSheet in de JavaScript code?
Hoe vraag je asynchroon een verwijzing naar een celbereik in het actieve werkblad op?
Waarom is een callback functie nodig bij het asynchroon ophalen van een celbereik?
Hoe worden waarden uit een webformulier in een array gezet om naar een cel te schrijven?
Wat is de functie van de lege callback functie Dummy in de setValuesAsync methode?
Waar kan ik de werking van deze methode bekijken?



Vragen, suggesties of opmerkingen