5 Google Sheets Script funkció, amelyet tudnia kell
A Google Táblázatok(Google Sheets) egy hatékony felhőalapú táblázatkezelő eszköz, amellyel szinte mindent megtehet, amit a Microsoft Excelben(Microsoft Excel) megtehet . A Google Táblázatok(Google Sheets) igazi ereje azonban a hozzá tartozó Google Scripting funkció.
A Google Apps(Google Apps) szkriptelés egy háttérszkriptkészítő eszköz, amely nemcsak a Google Táblázatokban(in Google Sheets) , hanem a Google Dokumentumokban, a Gmailben, a Google Analyticsben(Google Analytics) és szinte minden más Google felhőszolgáltatásban is működik. Lehetővé teszi az egyes alkalmazások automatizálását, és az egyes alkalmazások egymással való integrálását.
Ebből a cikkből megtudhatja, hogyan kezdje el a Google Apps szkripteket, hogyan hozzon létre egy alapvető szkriptet a Google Táblázatokban(Google Sheets) a cellaadatok olvasásához és írásához, valamint a leghatékonyabb speciális Google Táblázatok(Google Sheets) szkriptfunkciókat.
Google Apps Script létrehozása(How to Create a Google Apps Script)
Már most elkezdheti létrehozni első Google Apps -szkriptjét a Google Táblázatok szolgáltatásból(Google Sheets) .
Ehhez válassza a menü Eszközök(Tools) menüpontját, majd a Script Editor menüpontot(Script Editor) .
Ezzel megnyílik a szkriptszerkesztő ablak, és alapértelmezés szerint a myfunction() nevű függvény lesz . Itt hozhatja létre és tesztelheti a Google Scriptet(Google Script) .
A próbálkozáshoz próbáljon meg létrehozni egy Google Táblázatok(Google Sheets) szkriptfüggvényt, amely beolvassa az adatokat az egyik cellából, számítást végez rajta, és egy másik cellába adja ki az adatmennyiséget.
A cellából származó adatok lekérésére szolgáló függvény a getRange() és getValue() függvény. A cellát soronként és oszloponként azonosíthatja. Tehát ha van értéke a 2. sorban és az 1. oszlopban (az A oszlopban), a szkript első része így fog kinézni:
function myFunction() { var sheet = SpreadsheetApp.getActiveSheet(); var row = 2; var col = 1; var data = sheet.getRange(row, col).getValue(); }
Ez az adott cellából származó értéket tárolja az adatváltozóban(data) . Számítást végezhet az adatokon, majd kiírhatja az adatokat egy másik cellába. Tehát ennek a függvénynek az utolsó része a következő lesz:
var results = data * 100; sheet.getRange(row, col+1).setValue(results); }
Ha végzett a függvény írásával, válassza ki a lemez ikont a mentéshez.
Amikor először futtat egy új Google Táblázatok szkriptfunkciót, mint ez (a Futtatás ikon kiválasztásával), (Google Sheets)engedélyt(Authorization) kell adnia a szkript futtatásához a Google Fiókjában(Google Account) .
Engedélyezze az engedélyeket a folytatáshoz. Miután a szkript lefut, látni fogja, hogy a szkript a számítási eredményeket a célcellába írta.
Most, hogy tudja, hogyan kell írni egy alapvető Google Apps -szkriptfüggvényt, vessünk egy pillantást néhány fejlettebb funkcióra.
Használja a getValues-t a tömbök betöltéséhez(Use getValues To Load Arrays)
A tömbök használatával új szintre emelheti azt a koncepciót, hogy számításokat végezzen a táblázatban lévő adatokon a parancsfájlokkal. Ha a getValues használatával tölt be egy változót a Google Apps - szkriptbe, a változó egy tömb lesz, amely több értéket is betölthet a munkalapról.
function myFunction() { var sheet = SpreadsheetApp.getActiveSheet(); var data = sheet.getDataRange().getValues();
Az adatváltozó egy többdimenziós tömb, amely a lap összes adatát tartalmazza. Az adatok kiszámításához for ciklust kell használni. A for ciklus számlálója minden soron keresztül fog működni, és az oszlop állandó marad, attól függően, hogy melyik oszlopba szeretné begyűjteni az adatokat.
Példatáblázatunkban az alábbiak szerint végezhet számításokat a három adatsoron.
for (var i = 1; i < data.length; i++) { var result = data[i][0] * 100; sheet.getRange(i+1, 2).setValue(result); } }
Mentse(Save) el és futtassa ezt a szkriptet a fenti módon. Látni fogja, hogy az összes eredmény a táblázat 2. oszlopába kerül.
Észreveheti, hogy egy tömbváltozóban egy cellára és egy sorra való hivatkozás más, mint a getRange függvény esetében.
az adat[i][0](data[i][0]) a tömbméretekre utal, ahol az első dimenzió a sor, a második pedig az oszlop. Mindkettő nulláról indul.
getRange(i+1, 2) a második sorra utal, amikor i=1 (mivel az 1. sor a fejléc), a 2 pedig a második oszlop, ahol az eredményeket tárolják.
Eredmények írásához használja az appendRow parancsot(Use appendRow To Write Results)
Mi a teendő, ha van egy táblázata, ahol új oszlopok helyett új sorba szeretne adatokat írni?
Ez könnyen megtehető az appendRow funkcióval. Ez a funkció nem zavarja a munkalapon található adatokat. Csak hozzáfűz egy új sort a meglévő munkalaphoz.
Példaként készítsen egy függvényt, amely 1-től 10-ig számol, és a Számláló(Counter) oszlopban egy számlálót mutat 2 többszörösével.
Ez a függvény így nézne ki:
function myFunction() { var sheet = SpreadsheetApp.getActiveSheet(); for (var i = 1; i<11; i++) { var result = i * 2; sheet.appendRow([i,result]); } }
Itt vannak az eredmények a funkció futtatásakor.
RSS-hírcsatornák feldolgozása az URLFetchApp segítségével(Process RSS Feeds With URLFetchApp)
Kombinálhatja a korábbi Google Táblázatok(Google Sheets) szkriptfunkciót és az URLFetchApp alkalmazást, hogy lekérje az RSS -hírcsatornát bármely webhelyről, és írjon egy sort a táblázatba az adott webhelyen nemrég közzétett minden cikkhez.
Ez alapvetően egy barkácsolási(DIY) módszer, amellyel saját RSS - hírcsatorna-olvasó táblázatot hozhat létre!
Az ehhez szükséges forgatókönyv sem túl bonyolult.
function myFunction() { var sheet = SpreadsheetApp.getActiveSheet(); var item, date, title, link, desc; var txt = UrlFetchApp.fetch("https://www.topsecretwriters.com/rss").getContentText(); var doc = Xml.parse(txt, false); title = doc.getElement().getElement("channel").getElement("title").getText(); var items = doc.getElement().getElement("channel").getElements("item"); // Parsing single items in the RSS Feed for (var i in items) { item = items[i]; title = item.getElement("title").getText(); link = item.getElement("link").getText(); date = item.getElement("pubDate").getText(); desc = item.getElement("description").getText(); sheet.appendRow([title,link,date,desc]); } }
Amint láthatja, az Xml.parse minden elemet kihúz az RSS -hírcsatornából, és minden sort szétválaszt a címben, hivatkozásban, dátumban és leírásban.
Az appendRow függvény segítségével ezeket az elemeket az RSS feed minden egyes eleméhez megfelelő oszlopokba helyezheti.
A munkalap kimenete így fog kinézni:
Ahelyett, hogy beágyazná az RSS - hírcsatorna URL -címét a szkriptbe, a munkalapon lehet egy mező az URL -lel , majd több munkalap is lehet – minden megfigyelni kívánt webhelyhez egy.
A karakterláncok(Concatenate Strings) összefűzése és kocsivisszaadás (Carriage Return)hozzáadása(Add)
Egy lépéssel tovább viheti az RSS -táblázatot néhány szövegszerkesztő funkció hozzáadásával, majd az e-mail funkciók segítségével e-mailt küldhet magának a webhely RSS - hírcsatornájában található összes új bejegyzés összefoglalójával.
Ehhez az előző szakaszban létrehozott szkripthez hozzá kell adni néhány olyan szkriptet, amely a táblázatban található összes információt kivonja.
A tárgysort és az e-mail szövegtörzsét úgy kell összeállítani, hogy össze kell elemezni az összes információt ugyanabból az „elemek” tömbből, amelyet az RSS -adatok táblázatba írásához használt.
Ehhez inicializálja a tárgyat és az üzenetet úgy, hogy a következő sorokat az „elemek” For ciklus elé helyezi.
var subject = ‘Latest 10 articles published at mysite.com’
var message = ‘’
Ezután a ciklus „elemeinek” végére (közvetlenül az appendRow függvény után) adja hozzá a következő sort.
message = message + title + '\n' + link + '\n' + date + '\n' + desc + '\n' + '\n \n';
A „+” szimbólum összefűzi mind a négy elemet, majd a „ ” jel követi a kocsi visszatérést minden sor után. Minden egyes címadatblokk végén két kocsivisszaküldést kell adnia egy szépen formázott e-mail törzshöz.
Az összes sor feldolgozása után a „body” változó tartalmazza a teljes e-mail üzenetet. Most már készen áll az e-mail elküldésére!
E-mail küldés a Google Apps Scriptben(How To Send Email In Google Apps Script)
A Google Script(Google Script) következő része a „tárgy” és a „törzs” elküldése e-mailben. Ezt a Google Script segítségével nagyon egyszerű megtenni.
var emailAddress = myemail@gmail.com;
MailApp.sendEmail(emailAddress, subject, message);
A MailApp egy nagyon kényelmes osztály a Google Apps szkripteken belül, amely hozzáférést biztosít Google Fiókja e-mail szolgáltatásához e-mailek küldéséhez és fogadásához. Ennek köszönhetően a sendEmail funkcióval ellátott egyetlen sor lehetővé teszi, hogy bármilyen e-mailt küldjön(send any email) , csak az e-mail címmel, tárgysorral és törzsszöveggel.
Így fog kinézni a kapott e-mail.
Egy webhely RSS -hírcsatornájának kivonatolása, (RSS)Google-táblázatban(Google Sheet) való tárolása és az URL -hivatkozásokkal együtt történő elküldése önmagának, nagyon kényelmessé teszi bármely webhely legfrissebb tartalmának követését.
Ez csak egy példa a Google Apps - szkriptekben rendelkezésre álló képességekre a műveletek automatizálására és több felhőszolgáltatás integrálására.
Related posts
4 módszer az Excel konvertálására Google Táblázatokká
Google Táblázatok vs Microsoft Excel – Mi a különbség?
A táblázat szegélyeinek eltávolítása a Google Dokumentumokban
Hogyan segít a Google Docs Chat a dokumentumokkal kapcsolatos együttműködésben?
Vízjel beillesztése a Wordbe és a Google Docsba
Az üres sorok törlése az Excelben
Az Outlook-adatfájl nem érhető el: 4 kipróbálható javítás
Google Diák vs Microsoft PowerPoint – Mi a különbség?
A törölt e-mailek helyreállítása az Office 365-ben
Dátum szerinti rendezés az Excelben
Hogyan exportálhatja e-mailjeit a Microsoft Outlookból CSV vagy PST formátumba
A profil betöltésekor elakadt Outlook elhárítása
A könyvjelző nem definiált hibájának javítása a Wordben
Makró létrehozása és futtatása a Wordben
A PowerPoint 7 alternatívája, amelyet online használhat
A szószám megjelenítése a Microsoft Word programban
Animált GIF beszúrása a PowerPointba
Hogyan javítsunk ki egy sort az Excelben
Olvasási nyugták beállítása az Outlookban
Hogyan készítsünk VBA-makrót vagy szkriptet az Excelben