Tabuľky sú jedným z najbežnejších nástrojov súčasného obchodného sveta. Existuje niekoľko implementácií tabuľkového softvéru, s určitými rozdielmi medzi nimi všetkým, ale bez ohľadu na to, ktorá z nich sa používa, pre tých, ktorých práca závisí od nich, sú úplne nevyhnutné.
„Tabuľky: Ľahko sa učia, ťažko sa ovládajú“ TweetJe ľahké začať pracovať s tabuľkou, ale trvá to tiež chvíľu, kým si osvojíte svoje schopnosti, aby ste mohli využívať všetky výkonné funkcie, ktoré poskytuje. Keď sa začnete cítiť dobre s vzorcami, funkciami, kontingenčnými tabuľkami atď., Stále existuje ešte jedna úroveň, ktorá vám umožní dosiahnuť ešte viac - vlastné rozšírenia. Rôzne produkty poskytujú rôzne rozhrania na vytváranie rozšírení. V tomto článku sa budem venovať tabuľkám Google, ktoré poskytujú priateľské rozhranie pre interakciu s dokumentom s názvom Google Apps Script. Je napísaný v podmnožine JavaScriptu a umožňuje integráciu s inými aplikáciami a službami Google.
Flexibilita tabuliek z neho robí vynikajúci nástroj pre podnikateľov a začínajúce podniky. Vďaka ďalším skriptom Apps sú možnosti nekonečné. Prvýkrát som to považoval za užitočné asi pred siedmimi rokmi. Prevádzkoval som web so skupinou redaktorov a chceli sme si stanoviť a zmerať určité ciele. Neexistoval jednoduchý spôsob, ako vytvoriť vlastný prehľad, ktorý by obsahoval údaje zo služieb Analytics, AdSense a Facebook na jednej stránke. Bolo tiež dôležité vytvárať prehľady založené na čerstvých údajoch s dennými aktualizáciami. Prvý nápad bol vytvoriť tabuľku a uchovať tam všetky čísla, ale bolo ťažké ju aktualizovať. Po nejakom výskume som zistil, že skripty Apps môžu byť riešením! Umožňuje vám upraviť dokument, načítať údaje zo služieb tretích strán a automatizovať celý pracovný tok. Odvtedy som vytvoril desiatky tabuliek, ktoré slúžia na rôzne prípady použitia.
Ďalej nájdete prípady použitia v reálnom svete, ktoré vás môžu inšpirovať pri vytváraní vlastných:
Možností je neúrekom. Pozrime sa podrobnejšie a vytvorme ukážkové rozšírenie.
V tomto článku sa chystáme vytvoriť jednoduché rozšírenie, ktoré bude overovať poskytnuté IČ DPH pomocou Systém VIES vytvorená Európskou úniou. Google poskytuje webový editor skriptov, ktorý môže byť užitočný pre malé rozšírenia, ale má aj veľa obmedzení:
Namiesto toho použijeme ďalší nástroj vytvorený spoločnosťou Google s názvom Spona . Je to nástroj príkazového riadku, ktorý pomáha s miestnym vývojom nástrojov Apps Script. Týmto spôsobom budeme môcť uchovávať kód v úložisku Git a spolupracovať s ostatnými Vývojári služby Dokumenty Google . Pomáha tiež pri nasadení.
Clasp je nástroj príkazového riadku založený na Node.js. Prvá vec, ktorú musíme nainštalovať, je:
npm i @google/clasp -g
Ak chcete tento nástroj používať, musíme sa prihlásiť do nášho účtu Google. Všetky projekty vytvorené pomocou aplikácie Clasp budú spojené s týmto účtom Google. Stačí zavolať na:
clasp login
A mala by sa otvoriť nová karta prehľadávača. Po prihlásení sme pripravení začať nový projekt:
mkdir vat-id-validator; cd vat-id-validator; clasp create 'VAT ID Validator'
Budete požiadaní o typ skriptu a mali by ste odpovedať sheets
. Môže sa zobraziť výzva na povolenie rozhrania Apps Script API. V takom prípade postupujte podľa pokynov na obrazovke. Po úspešnom dokončení sa vám zobrazia odkazy na editor dokumentov a skriptov, napríklad:
Created new Google Sheet: https://drive.google.com/open?id=1Do83dksmRvsFPuGbaOS8tMPdyZEHvGuWWdDwMuEp8tA Created new Google Sheets Add-on script: https://script.google.com/d/1gfjbe875R1VPmxf30zA3DAcKy_4qpK5XHsmwbzDt6JWb24P3p17EYk2s/edit
Poznačte si obe adresy URL, budeme ich neskôr potrebovať. Teraz ste pripravení otvoriť priečinok vo svojom obľúbenom editore a začať hackovať!
Začnime niečím jednoduchým. Vytvorte nový súbor, zavolajte ho index.js
a vložte nasledujúci obsah:
function validate() { console.log('hello world') }
Teraz vložíme kód:
clasp push
A vo svojom prehliadači otvorte editor skriptov (odkaz ste dostali pri vytvorení kroku). Tu môžete spustiť a otestovať kód. Vyberte Spustiť> Spustiť funkciu> overiť .
protipo: Clasp vám umožňuje spúšťať funkcie priamo z CLI. Vyžaduje si to ďalšie nastavenie projektu. Nájdete viac informácií tu .
Ak je všetko v poriadku ... nič sa nestane! Denníky sa ukladajú v nástroji Stackdriver Logging. Prístup k nim je možný cez Zobraziť> Protokolovanie stohovača , ale je to pohodlnejšie to urobiť z konzoly. Stačí zavolať na:
clasp logs
Clasp vás prvýkrát požiada o ID projektu. Ak to chcete získať, vráťte sa do editora skriptov a vyberte Zdroje> Projekt cloudovej platformy . Vo vyskakovacom okne nájdete ID, počnúc od project-id-xxxxxxxxx . Skopírujte a prilepte celé ID do konzoly.
Po chvíli nájdete v konzole svoj prihlásený „ahoj svet“.
protipo: Oba príkazy clasp push
a clasp logs
prijmite --watch
príznak, ktorý môže byť užitočný počas vývoja.
Je čas vytvoriť kód našej validácie. VIES poskytuje verejné SOAP API, ktoré nie je najjednoduchšie pracovať s JS, ale pre naše potreby to bude v poriadku. Aktualizujte index.js nasledujúcim kódom:
function validate() { const ret = makeCall('PL', '8522604586') console.log(ret) return ret } function makeCall(countryCode, vatNumber) { // Create SOAP message for WDSL: http://ec.europa.eu/taxation_customs/vies/checkVatService.wsdl var message = '' + '' + ' ' + ' ' + ' ' + countryCode + '' + ' ' + vatNumber + '' + ' ' + ' ' + '' // Use UrlFetchApp (https://developers.google.com/apps-script/reference/url-fetch/url-fetch-app) to send POST request var xml = UrlFetchApp.fetch('http://ec.europa.eu/taxation_customs/vies/services/checkVatService', { method: 'POST', contentType: 'text/xml', payload: message }).getContentText() // the response is XML, which can be parsed with XmlService (https://developers.google.com/apps-script/reference/xml-service/) var document = XmlService.parse(xml); var mainNs = XmlService.getNamespace('http://schemas.xmlsoap.org/soap/envelope/'); var checkVatResponseNs = XmlService.getNamespace('urn:ec.europa.eu:taxud:vies:services:checkVat:types'); var root = document.getRootElement().getChild('Body', mainNs).getChild('checkVatResponse', checkVatResponseNs); // Extract interesting information var isValid = root.getChild('valid', checkVatResponseNs).getText() var companyName = root.getChild('name', checkVatResponseNs).getText() var companyAddress = root.getChild('address', checkVatResponseNs).getText() return { isValid: isValid, companyName: companyName, companyAddress: companyAddress } }
Funkcia overuje volania iného ( makeCall ), ktorý sa spája s VIES a získava údaje o spoločnosti na základe poskytnutého IČ DPH. Teraz sa môžete pokúsiť znova spustiť overovanie. Požiada o ďalšie povolenia a vy by ste mali súhlasiť. Pri kontrole denníkov bude obsahovať nový záznam:
{isValid=true, companyName=BUSHIDO GAMES SPÓŁKA Z OGRANICZONĄ ODPOWIEDZIALNOŚCIĄ, companyAddress=ANDRZEJA MAŁKOWSKIEGO 30 M1 70-304 SZCZECIN}
protipo: Clasp vám umožní napísať kód do strojopisu. Týmto spôsobom získavate prístup k funkciám šípok, triedam, písaniu a oveľa viac. Viac podrobností nájdete tu .
Zatiaľ máme kúsok kódu, ktorý volá externé API, ale nie je integrovaný do tabuľky. Je čas to zmeniť. Ide o to, aby bolo možné v dokumente vybrať viac buniek a potom zavolať overovací mechanizmus. Overené čísla DPH sa zvýraznia zelenou alebo červenou farbou.
Vymeňte funkciu overenia v súbore index.js za nasledujúci kód:
function onOpen() { var ss = SpreadsheetApp.getActiveSpreadsheet(); var menuEntries = [{name: 'Validate', functionName: 'validate'}] ss.addMenu('VAT ID Validator', menuEntries); } function validate() { // Take current selection var range = SpreadsheetApp.getActiveSpreadsheet().getSelection().getActiveRange(); // Iterate through range var numRows = range.getNumRows(); var numCols = range.getNumColumns(); for (var i = 1; i <= numRows; i++) { for (var j = 1; j <= numCols; j++) { var cell = range.getCell(i, j); var currentValue = cell.getValue(); // check if the cell value has VAT ID format var parsed = currentValue.match(/([A-Z]{2})(w+)/); // if it's not VAT ID, skip it if(!parsed){ continue } // make call to VIES var validated = makeCall(parsed[1], parsed[2]) // Add colors if(validated.isValid){ // as addition we can add a note with company name and address retrieved from VIES cell.setNote(validated.companyName + '
' + validated.companyAddress) cell.setBackgroundColor('#dfffdb'); } else { cell.setBackgroundColor('#e6b8af'); } } } }
Môžete si všimnúť novú funkciu onOpen
bol pridaný. Vytvorí sa nový záznam v ponuke. Otvorte tabuľkový dokument (odkaz získate po zavolaní clasp create
). Po úplnom načítaní by ste mali získať novú pozíciu v ponuke s názvom Validátor DPH s jedinou možnosťou, Potvrdiť . Kliknite na ňu a Google vás požiada o autorizáciu ďalších povolení. Po odsúhlasení sa skript spustí, ale nič sa nestane. Je to preto, lebo na overenie potrebujeme IČ DPH. Tu je niekoľko, s ktorými si môžete zahrať:
Jednoducho ich prilepte do tabuľky, vyberte všetkých päť buniek a kliknite na Potvrdiť ešte raz. Voilà! Prvé tri sú platné a mali by byť zvýraznené zelenou farbou. Ďalšie dva budú červené, pretože to nie sú platné IČ DPH.
Vyššie uvedené môže byť úplným rozšírením, ale ak hľadáte viac praktík, môžete skúsiť pridať viac validátorov. Môžete napríklad overiť, či vybrané bunky obsahujú platné identifikačné číslo daňového poplatníka v USA alebo číslo kreditnej karty. Môžete zvoliť dva prístupy:
Toto je iba úvod a vyššie uvedený príklad je dosť jednoduchý, nezabudnite však, že obchodná logika v skriptoch Apps môže byť oveľa pokročilejšia. Môžete použiť vlastné knižnice JS, ktoré vám pomôžu dosiahnuť zložitejšie úlohy. Jedným z nich, ktoré často používam, je Moment.js - práca s dátumami na Vanilla JS je strašná skúsenosť.
Ďalšou vecou, ktorú môžete urobiť, ak váš skript vyrieši všeobecnejší problém, je nasadenie vášho skriptu Apps ako doplnok. Toto vám umožní zdieľať skript s ostatnými používateľmi. Môžete si dokonca vybrať medzi zdieľaním doplnku iba s vašou organizáciou alebo jeho zverejnením pre všetkých. Zobrazí sa v knižnici doplnkov a bude pripravený na použitie v ktorejkoľvek tabuľke.
Proces nasadenia nie je komplikovaný a prvým krokom je príprava kódu na testovanie. O tom nájdete ďalšie informácie tu . Ak sa rozhodnete, že ste pripravení ísť, môžete zverejniť svoj doplnok . Upozorňujeme, že ak sa rozhodnete svoj kód zverejniť verejne, skontroluje ho tím spoločnosti Google, aby sme sa ubezpečili, že je v súlade s normami pre publikácie aplikácií.
To je všetko, čo potrebujete vedieť, aby ste mohli začať hackovať. Možnosti sú neobmedzené. Skripty aplikácií fungujú nielen s tabuľkami Google, ale aj s dokumentmi a prezentáciami.
Až budete nabudúce hľadať spôsob, ako automatizovať niektoré procesy alebo pracovné postupy, nezabudnite, že to možno ľahko dosiahnuť pomocou skriptov Apps. V tomto príspevku sme diskutovali iba o vrchole ľadovca.
Môžete sa inšpirovať alebo nájsť pripravené riešenie pri prehliadaní bohatých knižnica doplnkov .
Tu sú dva odkazy, ktoré vám pomôžu začať cestu skriptovaním tabuliek:
Pretože je Apps Script podmnožinou JavaScriptu, môžete zvážiť prečítanie 10 najčastejších chýb, ktoré vývojári JavaScriptu robia od kolegu ApeeScapeera Ryana J. Petersona.
Otvorte tabuľkový dokument a prejdite do ponuky Nástroje> Editor skriptov.
Môžete použiť poskytnutý editor skriptov, ale je pohodlnejšie používať vlastné IDE spolu s Claspom, nástrojom CLI vyvinutým spoločnosťou Google na synchronizáciu a spustenie vášho skriptu Apps.
Je založený na JavaScripte 1.6 s niektorými časťami 1.7 a 1.8. Pomocou Clasp môžete prepnúť na TypeScript, čo môže byť výhodnejšie pre zložitejšie projekty.
Pomocou Clasp môžete kód uchovávať v akomkoľvek úložisku a spolupracovať s ďalšími vývojármi.
Svoje rozšírenie môžete zverejniť ako doplnok. Je možné, aby bol prístupný iba pre používateľov v rámci vašej organizácie alebo verejne pre všetkých používateľov.