I dag udkonkurrerer cloud-løsninger desktop-apps, der er dedikeret til kontorarbejde. En af de største kontorpakker leveres af Google og indeholder dokumenter, regneark og præsentationer, altså det meste af det, som et gennemsnitligt kontor har brug for.
I denne artikel vil jeg se nærmere på Google Spreadsheets-appen og vise dig, hvordan du kan gøre den endnu smartere ved hjælp af Google Apps Script.
Forestil dig, at dit job handler om at føre tilsyn med andres arbejde, hvilket normalt fører til, at du skal skrive nogle rapporter. Du vil gerne holde tingene standardiserede og generiske, så du har lavet et regneark med en liste over de ting, du skal kontrollere, og nogle celler til en kommentar. Lad os antage, at du er ansvarlig for kvaliteten af en digital produkt. Så kan dit regneark se sådan ud:
I eksemplet ovenfor kan du se flere ting:
funktionsnavn ("Brugerloginformular") og nummer (f.eks. fra et ERP-system),
liste over aspekter, du skal tjekke og give feedback på (kolonnen "Område"),
nogle tomme felter til dine konklusioner (kolonnen "Kommentar").
Dette ark hedder "Rapportgenerator", fordi jeg vil vise dig, hvordan dette dokument kan udvikle sig til et virkelig nyttigt værktøj, der giver dig mulighed for at vurdere kvaliteten af en persons arbejdsresultater.
Hvis du vil kvantificere nogle resultater, er det nok bedst at bruge en skala, f.eks. 1-10 point eller noget i den stil.
Lad os oprette et nyt ark i det samme dokument, kalde det "Config" og definere det som beskyttet (eller i det mindste tilføje en keylock-emoji til navnet). Dette ark er kun beregnet til at gemme nogle foruddefinerede indstillinger, som dem nedenfor:
Nu kan du lægge disse værdier ind i nogle dropdowns i Rapportgenerator ark ved at bruge Validering af data funktion. Her kan du finde nogle instruktioner om, hvordan du gør det:
Når du har gjort det, kan du nemt konvertere vurderinger til numeriske værdier ved at bruge IF formel. Dit regneark vil forblive menneskevenligt, og dine konklusioner vil blive kvantificeret (så de er målbare og sammenlignelige) på samme tid.
Dette dokument er pænt, men forestil dig, hvad der sker, når omfanget af din revision vokser, og du har hundredvis af ting at kontrollere. Du kan gemme en tom formularskabelon og kopiere den, hver gang du skal lave en ny rapport, men det er meget irriterende at skifte mellem dokumentlister og regnearket. Det er her, man begynder at tænke på noget automatisering.
Det er det perfekte tidspunkt at starte dit eventyr med Google Apps Script!
Før vi begynder at kode, skal vi forberede nogle knapper til massehandlinger. I henhold til eksemplet ovenfor:
markere alle elementer som "perfekte"
Marker alle som "Forbedringer nødvendige".
markere alle som "uacceptable"
nulstil alle (sæt værdien til en tom streng).
Vi har også brug for en ekstra handling for at gemme en ny fil, når revisionen er færdig.
Lad os først udvide vores Rapportgenerator med det funktionelle område, der indeholder knapper.
Derefter, ved at bruge Indsæt -> TegningLad os tilføje vores knapper, en efter en.
Vores eksempeldokument skal se sådan ud:
Vi er klar til at tilføje noget logik til denne smukke brugergrænseflade! Det er meget nemt at komme i gang - bare vælg Værktøjer -> Script-editor i topmenuen, og browseren springer til et nyt kort.
Redigeringsværktøjets brugerflade er meget intuitiv. Hvis du er bekendt med nogen Kode editor, kan du nemt omdøbe din fil eller oprette en ny (Fil -> Ny -> Script-fil).
Google Apps Script er ikke andet end en fætter til JavaScript, så at sige. Hvis du kender JS, kan du også opnå GS-færdighed!
Det allerførste skridt er at samle alle mulige nødvendige referencer på ét sted og give dem nogle meningsfulde navne. Vi starter med globale variabler ved at fjerne standard minFunktion erklæring og skrive noget mere nyttigt i Kode.gs fil.
var spreadsheet = SpreadsheetApp.getActiveSpreadsheet()
// referencer til ark
var report = spreadsheet.getSheets()[0]
var config = spreadsheet.getSheets()[1]
Ovenstående kode er ganske selvforklarende, men for at gøre det helt klart:
RegnearksApp klassen er tilgængelig i en global kontekst,
getActiveSpreadsheet giver os mulighed for at få en reference til det regneark, vi arbejder på,
getSheets metode, der kaldes på Regneark instans returnerer arrayet af ark fra dette regneark; i vores eksempel returnerer den [Rapportgenerator ark, Konfig ark] array.
Nu kan vi gå videre og hente nogle nyttige data fra vores regneark.
// redigerbart område (celler med dropdowns)
var dropdowns = report.getRange('C4:C13')
// celle med undertitel (funktionens navn)
var featureName = report.getRange('B2').getValue()
// indstillinger fra 'Config'-arket
// bemærk, at du kan sende en enkelt celle til getRange()-metoden
// og ændring af indstillinger påvirker ikke dit scripts funktionalitet
var værdier = {
unacceptable: config.getRange('A2').getValue(),
improvements_needed: config.getRange('A3').getValue(),
perfect: config.getRange('A4').getValue(),
empty: ''
};
Det eneste, der mangler at blive kodet, er definitionen af de funktioner, vi vil tildele vores knapper.
// knapfunktioner
function allPerfect() {
dropdowns.setValue(værdier.perfekt)
}
function allNeedImprovements() {
dropdowns.setValue(values.improvements_need)
}
function allUnacceptable() {
dropdowns.setValue(values.unacceptable)
}
function clear() {
dropdowns.setValue(values.empty)
}
function copy() {
var copy = spreadsheet.copy(featureName + ' - report')
// Nu har vi kopieret to ark med samme værdier
// men ændrede navne (med et "copy"-suffiks),
// i dette tilfælde skal vi give dem originale navne
// omdøb rapportarket
copy.getSheets()[0].setName(report.getName())
// omdøb konfigurationsarket
copy.getSheets()[1].setName(config.getName())
}
Den copy() metoden vil automatisk oprette et nyt regneark med navnet (i vores eksempel) "Brugerens login-formular - rapport"lige ved siden af den nuværende.
Tildel vores metoder til de knapper, der blev oprettet før. Vælg Tildel et script efter et højreklik på knappen...
... og skriv metodens navn, her er det allPerfect
Du behøver ikke at lukke din generator. Brug dine massehandlinger til at forberede formularen til en ny rapport, ændre funktionsnavnet og derefter gemme en ny kopi!
Muligheder for Google Apps Script er så mange, at det ville kræve en hel artikelserie at diskutere dem alle. Hvis du er interesseret i at optimere dit kontorarbejde, er du velkommen til at tjekke officielle dokumenter og gør dine lagner endnu smartere!
Der er nogle virkelig nyttige hacks derude, som f.eks. den her fra xfanatical.com om at eksportere Google Spreadsheet til PDF.
Eksemplet, der beskrives i denne artikel, er her. Jeg håber, du vil elske det. God fornøjelse!