Tegenwoordig verdringen cloud-oplossingen desktop-apps voor kantoorwerk. Een van de grootste kantoorpakketten wordt geleverd door Google en bevat Documenten, Spreadsheets en Presentaties, dus het grootste deel van wat een gemiddeld kantoor nodig heeft.
In dit artikel wil ik de Google Spreadsheets-app onder de loep nemen en laten zien hoe je deze nog slimmer kunt maken met behulp van het Google Apps Script.
Stel je voor dat je in je werk toezicht houdt op het werk van iemand anders, wat meestal leidt tot het schrijven van rapporten. Je wilt de dingen gestandaardiseerd en algemeen houden, dus heb je een spreadsheet gemaakt met een lijst van dingen die je moet controleren en wat cellen voor een opmerking. Laten we aannemen dat je verantwoordelijk bent voor de kwaliteit van een digitale product. Dan kan je spreadsheet er als volgt uitzien:
In het bovenstaande voorbeeld kun je verschillende dingen zien:
functienaam ("Inlogformulier voor gebruiker") en nummer (bijvoorbeeld van een ERP-systeem),
lijst met aspecten die je moet controleren en waarover je feedback moet geven (kolom "Gebied"),
enkele lege velden voor je conclusies (kolom "Commentaar").
Dit blad heet "Rapportgenerator", omdat ik je ga laten zien hoe dit document kan uitgroeien tot een echt nuttig hulpmiddel waarmee je de kwaliteit van iemands werkresultaten kunt beoordelen.
Als je bepaalde resultaten wilt kwantificeren, is het waarschijnlijk het beste om een schaal te gebruiken, bijvoorbeeld 1-10 punten, of iets in die richting.
Laten we een nieuw blad maken in hetzelfde document, noem het "Config" en definieer het als beveiligd (of voeg op zijn minst een keylock emoji toe aan de naam). Dit blad is alleen bedoeld voor het bijhouden van enkele vooraf gedefinieerde opties, zoals de onderstaande:
Nu kun je deze waarden in een aantal dropdowns in de Rapportgenerator vel met behulp van de Validatie van gegevens functie. Hier kun je instructies vinden over hoe je dit kunt bereiken:
Als je dat gedaan hebt, kun je eenvoudig waarderingen converteren naar numerieke waarden met de optie ALS formule. Je spreadsheet blijft mensvriendelijk en je conclusies worden tegelijkertijd gekwantificeerd (dus meetbaar en vergelijkbaar).
Dit document is netjes, maar stel je eens voor wat er gebeurt als de reikwijdte van je controle groeit en je hebt honderden dingen om te controleren. Je kunt een leeg formuliersjabloon opslaan en het kopiëren telkens als je een nieuw rapport moet maken, maar schakelen tussen documentlijsten en de spreadsheet is erg vervelend. Dit is het punt waarop je aan automatisering begint te denken.
Dit is het perfecte moment om uw avontuur met het Google Apps Script te beginnen!
Laten we, voordat we beginnen met coderen, een aantal knoppen voorbereiden voor bulkacties. Volgens het bovenstaande voorbeeld:
alle items als "Perfect" markeren
alles markeren als "Verbeteringen nodig".
alles markeren als "Onaanvaardbaar".
alles resetten (waarde instellen op een lege tekenreeks).
We hebben ook een extra actie nodig om een nieuw bestand op te slaan als de audit klaar is.
Laten we eerst onze Rapportgenerator met het functionele gebied dat knoppen bevat.
Dan, door gebruik te maken van Invoegen -> TekeningLaten we onze knoppen één voor één toevoegen.
Ons voorbeelddocument zou er zo uit moeten zien:
We zijn klaar om wat logica toe te voegen aan deze prachtige UI! Het is heel eenvoudig om te beginnen - kies gewoon Gereedschap -> Scripteditor in het bovenste menu en de browser springt naar een nieuwe kaart.
De interface van de editor is erg intuïtief. Als je bekend bent met code editor moet u uw bestand gemakkelijk hernoemen of een nieuw bestand maken (Bestand -> Nieuw -> Scriptbestand).
Google Apps Script is niets meer dan het neefje van een JavaScript. Als je JS kent, kun je ook GS-vaardigheid bereiken!
De allereerste stap is om alle mogelijk benodigde referenties op één plek te verzamelen en ze betekenisvolle namen te geven. We beginnen met globale variabelen door de standaard mijnFunctie declaratie en iets nuttigers typen in de Code.gs bestand.
var spreadsheet = SpreadsheetApp.getActiveSpreadsheet()
// verwijzingen naar bladen
var rapport = spreadsheet.getSheets()[0]
var config = spreadsheet.getSheets()[1]
De bovenstaande code spreekt voor zich, maar om het helemaal duidelijk te maken:
SpreadsheetApp klasse beschikbaar is in een globale context,
getActiveSpreadsheet Met de methode kunnen we de referentie krijgen naar de spreadsheet waar we aan werken,
getSheets methode aangeroepen op de Werkblad geeft de array van bladen van deze spreadsheet terug; in ons voorbeeld geeft het de [Rapportgenerator blad, Config sheet] matrix.
Nu kunnen we verder gaan en wat nuttige gegevens uit onze spreadsheet halen.
// bewerkbaar gebied (cellen met dropdowns)
var dropdowns = rapport.getRange('C4:C13')
// cel met ondertitel (naam functie)
var kenmerknaam = rapport.getRange('B2').getValue()
// opties van blad 'Config
// merk op dat je een enkele cel kunt doorgeven aan de methode getRange()
// en het wijzigen van opties heeft geen invloed op de functionaliteit van uw script
var values = {
onaanvaardbaar: config.getRange('A2').getValue(),
improvements_needed: config.getRange('A3').getValue(),
perfect: config.getRange('A4').getValue(),
leeg: ''
};
Het enige dat we nog moeten coderen is de definitie van functies die we aan onze knoppen willen toewijzen.
// knopfuncties
functie allPerfect() {
dropdowns.setValue(values.perfect)
}
functie allNeedImprovements() {
dropdowns.setValue(values.improvements_need)
}
functie allUnacceptable() {
dropdowns.setValue(values.unacceptable)
}
functie clear() {
dropdowns.setValue(values.empty)
}
functie kopie() {
var kopie = spreadsheet.kopie(kenmerknaam + ' - rapport')
// Nu hebben we twee bladen gekopieerd met dezelfde waarden
// maar namen veranderd (met een "copy" suffix),
// in dit geval moeten we ze originele namen geven
// rapportblad hernoemen
copy.getSheets()[0].setName(report.getName())
// config-sheet hernoemen
copy.getSheets()[1].setName(config.getName())
}
De kopie() methode zal automatisch een nieuwe spreadsheet aanmaken met de naam (in ons voorbeeld) "Inlogformulier gebruiker - rapport".direct naast de huidige.
Wijs onze methodes toe aan de eerder gemaakte knoppen. Kies Een script toewijzen na een klik met de rechtermuisknop op de knop...
...en typ de naam van de methode, hier is het allPerfect
Je hoeft je generator niet af te sluiten. Gebruik je bulkacties om het formulier klaar te maken voor een nieuw rapport, verander de naam van de functie en sla dan nog een kopie op!
Mogelijkheden van Google Apps Script zijn zo uitgebreid dat er een hele serie artikelen voor nodig zou zijn om ze allemaal te bespreken. Als je geïnteresseerd bent in het optimaliseren van je kantoorwerk, kijk dan gerust eens naar de officiële documenten en maak je lakens nog slimmer!
Er zijn echt handige hacks, zoals deze van xfanatical.com over het exporteren van Google Spreadsheet naar PDF.
Het voorbeeld dat in dit artikel wordt beschreven is hier. Ik hoop dat je het leuk zult vinden. Veel plezier!