5 a Google Táblázatok parancsfájl funkciói, amelyeket tudnia kell


A Google Sheets egy hatékony felhőalapú táblázatkezelő eszköz, amely lehetővé teszi szinte mindent, amit a Microsoft Excelben megtehet. De a Google Táblázatok valódi ereje a hozzájuk tartozó Google Scripting szolgáltatás.

A Google Apps szkriptelés egy olyan háttér szkriptelő eszköz, amely nem csak a Google Táblázatokban, hanem a Google Docs, a Gmail , A Google Analytics és szinte minden más Google felhőszolgáltatás. Ez lehetővé teszi az egyes alkalmazások automatizálását, és az alkalmazások egyesítését egymással.

<ábra class = "lusta aligncenter">

Ebben a cikkben megtudhatja, hogyan lehet elkezdeni a Google Apps szkriptjeit, létrehozni egy alapszkriptet a Google Sheets alkalmazásban a cellaadatok olvasására és írására, valamint a leghatékonyabb fejlett Google Sheets-t. szkript funkciók.

Hogyan hozzunk létre egy Google Apps szkriptet

Most elkezdheti az első Google Apps szkript létrehozását a Google Táblázatokból.

Ehhez válassza a menüben az Eszközöklehetőséget, majd a Szkriptszerkesztőlehetőséget.

<ábra class =" lusta aligncenter ">

Megnyitja a szkript-szerkesztő ablakot, és alapértelmezés szerint a myfunction (). Itt hozhatja létre és tesztelheti a Google Script-et.

In_content_1 all: [300x250] / dfp: [640x360]->

Ahhoz, hogy képet kapjon, próbáljon meg létrehozni egy Google Sheets szkriptfunkciót, amely leolvassa az adatokat egy cellából, elvégzi a számítást rajta, és kiadja az adatmennyiséget egy másik cellába.

A cella adatainak begyűjtése a getRange ()és a getValue ()függvények. A cellát sor és oszlop szerint lehet azonosítani. Tehát ha van egy értéke a 2. sorban és az 1. oszlopban (A oszlop), akkor a szkript első része így néz ki:

function myFunction() {
var sheet = SpreadsheetApp.getActiveSheet(); var row = 2; var col = 1; var data = sheet.getRange(row, col).getValue(); }

Ez az értéket tárolja ebből az értékből. cella a dataváltozóban. Az adatokat kiszámíthatja, majd ezeket az adatokat egy másik cellába írhatja. Tehát ennek a funkciónak az utolsó része lesz:

   var results = data * 100;
sheet.getRange(row, col+1).setValue(results); }

Amikor elkészült a funkcióval, válassza ki a mentéshez használt lemez ikont.

<ábra class = "lusta aligncenter">

Az első futtatás egy ilyen új Google Sheets szkript-funkciót (a futtatás ikon kiválasztásával) meg kell adnia a hitelesítést a szkript futtatásához a Google Fiókján.

<ábra osztály = "lusta aligncenter">

Engedélyezze az engedélyek folytatását. Amint a szkript fut, látni fogja, hogy a szkript a számítási eredményeket írta a célcellába.

<ábra class = "lusta aligncenter">

Most, hogy tudod, hogyan kell írni egy alapszintű Google Apps szkriptfunkciót, vessünk egy pillantást néhány fejlettebb funkcióra.

Használja a getValues ​​tömbök betöltését

A tömbök segítségével új szintre viheti azt a fogalmat, amely szerint a táblázatban szereplő adatokkal számításokat kell végezni szkriptekkel. Ha egy változót betölt a Google Apps szkriptbe a getValues ​​használatával, akkor a változó tömb lesz, amely több értéket tölthet be a lapból.

function myFunction() {
var sheet = SpreadsheetApp.getActiveSheet(); var data = sheet.getDataRange().getValues();

Az adatváltozó többdimenziós. tömb, amely a lap összes adatát tárolja. Az adatokkal való számítás elvégzéséhez használjon forhurkot. A for hurok számlálója minden soron át fog működni, és az oszlop állandó marad azon oszlop alapján, ahová az adatokat szeretné húzni.

A példa táblázatban a három sorban elvégezheti a számításokat. az adatok az alábbiak szerint.

for (var i = 1; i < data.length; i++) {
var result = data[i][0] * 100; sheet.getRange(i+1, 2).setValue(result);  } }

Mentse el és futtassa ezt a szkriptet, ahogy fent. Látni fogja, hogy az összes eredményt kitöltik a táblázat 2. oszlopába.

<ábra osztály = "lusta aligncenter">

Észre fogja venni, hogy a cellák és a sorok hivatkozása a tömbváltozóban eltér, mint a getRange függvénynél.

data [i] [0]a tömb méretére utal, ahol az első dimenzió a sor, a második az oszlop. Mindkettő nullánál kezdődik.

getRange (i + 1, 2)arra a második sorra utal, amikor i = 1 (mivel az 1. sor a fejléc), és 2 a második oszlop, ahol az eredményeket tárolják.

Az appendRow használata az eredmények írásához

Mi lenne, ha van olyan táblázat, amelyben adatokat szeretne írni egy új sor új oszlop helyett?

Ezt könnyű megtenni a appendRowfunkcióval. Ez a funkció nem zavarja a lapon lévő meglévő adatokat. Csak új sort fog hozzáadni a meglévő laphoz.

Például készítsen egy olyan funkciót, amely 1-től 10-ig számol, és mutasson egy számlálót 2-es szorzóval a Számlálóoszlop.

Ez a függvény így néz ki:

function myFunction() {
var sheet = SpreadsheetApp.getActiveSheet(); for (var i = 1; i<11; i++) { var result = i * 2; sheet.appendRow([i,result]); } }

Íme az eredmény a funkció futtatásakor.

RSS-hírcsatornák feldolgozása az URLFetchApp segítségével

Össze lehet kapcsolni a korábbi Google Sheets szkriptfunkciót és a URLFetchAppelemet, hogy bármely RSS-hírcsatornát elhúzzon, és sorba írjon egy táblázatot minden olyan cikkhez, amelyet a közelmúltban közzétettek az adott weboldalon .

Ez alapvetően egy DIY módszer a saját RSS feed olvasó táblázatának elkészítéséhez!

Az ehhez szükséges szkript 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]); } }

Mint láthatja, a Xml.parseminden elemet kihúzza az RSS-hírcsatornából, és az egyes sorokat elválasztja a címben, a hivatkozásban, a dátumban és a leírásban.

A appendRowfunkció használatával ezeket az elemeket az RSS-hírcsatornában minden egyes elem megfelelő oszlopába helyezheti.

A lap kimenete a következőképpen néz ki: valami ilyesmi:

<ábra class = "lusta aligncenter">

ehelyett az RSS-hírcsatorna URL-jének a szkriptbe történő beágyazása érdekében a lapban lehet egy mező az URL-lel, és több lap is lehet - minden egyes megfigyelni kívánt webhelyhez egy.

Összefonódó karakterláncok és a visszatérés hozzáadása

Az RSS-táblázat továbbléphet néhány szöveges manipulációs funkció hozzáadásával, majd e-mail funkciókkal e-mailt küldhet önnek az összes új üzenet összegzésével.

Ehhez az előző szakaszban létrehozott szkript alatt hozzá kell adnia néhány szkriptet, amely kibontja az összes információt a táblázatban.

A tárgysor és az e-mail szöveg törzsét úgy kell összeállítani, hogy az összes információt ugyanazon „tételek” tömbből elemzi, és az RSS-adatokat a táblázatba írta.

Ehhez inicializálja a témát és az üzenetet azáltal, hogy a következő sorokat a hurok „tételei” elé helyezi.

var subject = ‘Latest 10 articles published at mysite.com’
var message = ‘’

Ezután a a hurok „elemei” (közvetlenül a appendRow függvény után), add hozzá a következő sort.

message = message + title + '\n' + link + '\n' + date + '\n' + desc + '\n' + '\n \n';

A „+” szimbólum összekapcsolja mind a négy elemet, majd a „\ n ”A kocsi visszatérése minden sor után. Az egyes címsor-blokkok végén két kocsi visszatérést szeretne kapni egy szépen formázott e-mail törzshez.

Az összes sor feldolgozása után a „törzs” változó tartalmazza a teljes e-mail üzenet karakterláncát. Most már készen áll az e-mail küldésére!

E-mail küldés a Google Apps Script alkalmazásban

A Google Script következő szakasza az, hogy a „tárgy” és a „test” e-mailben. A Google Script segítségével ezt nagyon egyszerűen elvégezni.

var emailAddress = [email protected];
MailApp.sendEmail(emailAddress, subject, message);

A MailApp egy nagyon kényelmes osztály a Google Apps szkripteiben, amely hozzáférést biztosít Google-fiókjának e-mail szolgáltatásához küldéshez vagy fogadáshoz. e-maileket. Ennek köszönhetően a sendEmail funkcióval rendelkező sor lehetővé teszi, hogy küldjön bármilyen e-mailt csak az e-mail cím, a tárgysor és a szöveges szöveg legyen.

Így néz ki a kapott e-mail. .

<ábra class = "lusta aligncenter">

A kibontási képesség kombinálása egy weboldal RSS-hírcsatornáját, tárolja azt egy Google Sheet-ben, és küldje el magának, mellékelve az URL-hivatkozásokat, így nagyon kényelmes a weboldalak legújabb tartalmának követése.

Ez csak egy példa a hatalomra amely elérhető a Google Apps szkriptekben a műveletek automatizálására és a több felhőszolgáltatás integrálására.

Kapcsolódó hozzászólások:


16.01.2020