Numera konkurrerar molnlösningar ut skrivbordsappar som är avsedda för kontorsarbete. En av de största kontorssviterna tillhandahålls av Google och innehåller dokument, kalkylblad och presentationer, det vill säga det mesta som ett genomsnittligt kontor behöver.
I den här artikeln vill jag titta närmare på Google Spreadsheets-appen och visa dig hur du kan göra den ännu smartare med hjälp av Google Apps Script
Tänk dig att ditt jobb handlar om att övervaka någon annans arbete, vilket vanligtvis leder till att du skriver några rapporter. Du vill att saker och ting ska vara standardiserade och generiska, så du har skapat ett kalkylblad med en lista över saker som du behöver kontrollera och några celler för en kommentar. Låt oss anta att du är ansvarig för kvaliteten på en digital Produkt. Då kan ditt kalkylblad se ut så här:
I exemplet ovan kan du se flera saker:
funktionens namn ("Inloggningsformulär för användare") och nummer (t.ex. från ett ERP-system),
lista över aspekter som du måste kontrollera och ge feedback om (kolumnen "Område"),
några tomma fält för dina slutsatser (kolumnen "Kommentar").
Det här bladet kallas "Rapportgenerator", eftersom jag ska visa dig hur det här dokumentet kan utvecklas till ett riktigt användbart verktyg, så att du kan bedöma kvaliteten på någons arbetsresultat.
Om du vill kvantifiera vissa resultat är det bästa alternativet förmodligen att använda en skala, t.ex. 1-10 poäng, eller något i den stilen.
Låt oss skapa ett nytt ark i samma dokument, kalla det "Config" och definiera det som skyddat (eller åtminstone lägga till en emoji med ett nyckellås till namnet). Det här arket är bara till för att spara några fördefinierade alternativ, som de nedan:
Nu kan du lägga in dessa värden i några rullgardinsmenyer i Rapportgenerator ark genom att använda Validering av data funktion. Här kan du hitta några instruktioner om hur du gör detta:
När du har gjort det kan du enkelt konvertera betyg till numeriska värden med hjälp av IF formel. Ditt kalkylblad förblir användarvänligt och dina slutsatser blir kvantifierade (dvs. mätbara och jämförbara) på samma gång.
Detta dokument är snyggt, men föreställ dig vad som händer när omfattningen av din revision växer och du har hundratals saker att kontrollera. Du kan spara en tom formulärmall och kopiera den varje gång du behöver göra en ny rapport, men det är väldigt irriterande att växla mellan dokumentlistor och kalkylbladet. Det är nu man börjar fundera på automatisering.
Det är den perfekta tidpunkten att börja ditt äventyr med Google Apps Script!
Innan vi börjar koda, låt oss förbereda några knappar för bulkåtgärder. Enligt exemplet ovan:
markera alla objekt som "Perfekta"
markera alla som "Förbättringar behövs"
markera alla som "Oacceptabla"
återställ alla (sätt värdet till en tom sträng).
Vi kommer också att behöva en extra åtgärd för att spara en ny fil när granskningen är klar.
Låt oss först utöka vår Rapportgenerator med funktionsområdet som innehåller knappar.
Sedan, genom att använda Infoga -> RitningNu lägger vi till våra knappar, en efter en.
Vårt exempeldokument bör se ut så här:
Vi är redo att lägga till lite logik i detta vackra användargränssnitt! Det är väldigt enkelt att börja - välj bara Verktyg -> Skriptredigerare i toppmenyn och webbläsaren kommer att hoppa till ett nytt kort.
Redaktörens gränssnitt är mycket intuitivt. Om du är bekant med någon kod redigerare kan du enkelt byta namn på din fil eller skapa en ny (Fil -> Ny -> Skriptfil).
Google Apps Script är inget annat än en kusin till JavaScript, så att säga. Om du kan JS kan du också uppnå GS-kompetens!
Det allra första steget är att samla alla referenser som kan behövas på ett ställe och ge dem meningsfulla namn. Vi börjar med globala variabler genom att ta bort standard minFunktion deklaration och skriva något mer användbart i Kod.gs fil.
var kalkylblad = SpreadsheetApp.getActiveSpreadsheet()
// referenser till ark
var report = spreadsheet.getSheets()[0]
var config = spreadsheet.getSheets()[1]
Ovanstående kod är ganska självförklarande, men för att göra det helt klart:
KalkylbladApp klassen är tillgänglig i ett globalt sammanhang,
hämta ark metod som anropas på Kalkylblad instans returnerar matrisen med ark från detta kalkylblad; i vårt exempel returnerar den [Rapportgenerator ark, Konfig ark] array.
Nu kan vi gå vidare och hämta användbara data från vårt kalkylblad.
// redigerbart område (celler med rullgardinsmenyer)
var dropdowns = report.getRange('C4:C13')
// cell med underrubrik (funktionens namn)
var featureName = rapport.getRange('B2').getValue()
// alternativ från 'Config'-arket
// notera att du kan skicka en enda cell till getRange()-metoden
// och att ändra alternativ påverkar inte skriptets funktionalitet
var värden = {
oacceptabelt: config.getRange('A2').getValue(),
improvements_needed: config.getRange('A3').getValue(),
perfekt: config.getRange('A4').getValue(),
tom: ''
};
Det enda som återstår att koda är definitionen av de funktioner som vi vill tilldela våra knappar.
// knappfunktioner
funktion allPerfect() {
dropdowns.setValue(värden.perfekt)
}
funktion allNeedImprovements() {
dropdowns.setValue(värden.förbättringar_behövs)
}
funktion allaOacceptabla() {
dropdowns.setValue(värden.oacceptabla)
}
funktion clear() {
dropdowns.setValue(värden.tom)
}
funktion kopiera() {
var copy = kalkylblad.copy(featureName + ' - rapport')
// Nu har vi kopierat två ark med samma värden
// men ändrade namn (med suffixet "copy"),
// i det här fallet måste vi ge dem ursprungliga namn
// byt namn på rapportarket
copy.getSheets()[0].setName(rapport.getName())
// byt namn på konfigurationsarket
copy.getSheets()[1].setName(config.getName())
}
Den kopiera() metoden skapar automatiskt ett nytt kalkylblad som heter (i vårt exempel) "Inloggningsformulär för användare - rapport", precis bredvid den nuvarande.
Tilldela våra metoder till de knappar som skapades tidigare. Välj Tilldela ett skript efter ett högerklick på knappen...
...och skriv in metodens namn, här är det allaPerfekt
Du behöver inte stänga din generator. Använd dina bulkåtgärder för att förbereda formuläret för en ny rapport, ändra funktionsnamnet och spara sedan en ny kopia!
Möjligheter till Google Apps Script är så omfattande att det skulle krävas en hel artikelserie för att diskutera dem alla. Om du är intresserad av att optimera ditt kontorsarbete är du välkommen att kolla in officiella dokument och gör dina lakan ännu smartare!
Det finns några riktigt användbara hack där ute, som den här från xfanatical.com om att exportera Google Kalkylblad till PDF.
Exemplet som beskrivs i den här artikeln är här. Hoppas du kommer att älska det. Ha det så roligt!