介绍

Google Apps Script (GAS) 是一种与 Google 的多种服务(如 Google Sheets、Google Docs 和 Google Forms)关联的脚本开发平台。它可以自动化任务、添加自定义功能以及集成 Google 服务。

在这份备忘录中,我们将通过具体示例探索 Google Apps Script 的主要概念。我们将讨论诸如变量、循环、函数等概念,并还有许多其他内容,针对 GAS 的特定情境进行调整。

Google Apps Script 的基本结构

首先,让我们检查一下Google Apps脚本的基本结构。

/**
 * Structure de base en Google Apps Script
 */
function exempleStructureGAS() {
    // Votre code ici
    Logger.log("Hello, Google Apps Script!");
}

类型和变量在 Google Apps Script 中

Google Apps Script 使用 JavaScript 作为编程语言。数据类型和变量的工作方式与标准 JavaScript 类似。

/**
 * Types et Variables en Google Apps Script
 */
function exempleTypesVariablesGAS() {
    // Votre code ici
    var nombre = 42;
    var texte = "Bonjour, Google Apps Script!";
    Logger.log(nombre);
    Logger.log(texte);
}

操作和运算符在 Google Apps Script 中

Google Apps Script 中的操作和运算符与 JavaScript 中的相同。

/**
 * Opérations et Opérateurs en Google Apps Script
 */
function exempleOperationsGAS() {
    // Votre code ici
    var x = 10;
    var y = 5;
    var resultat = x + y;
    Logger.log(resultat);
}

变量、let 和 const 在 Google Apps Script 中

在 GAS 中,概念的`var`, let, et `const`用于声明变量。然而,理解它们之间的差异及其影响是至关重要的。

/**
 * Var, Let et Const en Google Apps Script
 */
function exempleVarLetConstGAS() {
    // Votre code ici
    // Utilisation de var
    var x = 10;
    if (true) {
        var x = 20; // La variable x est modifiée globalement
    }
    Logger.log(x);

    // Utilisation de let
    let y = 30;
    if (true) {
        let y = 40; // La variable y est limitée au bloc if
    }
    Logger.log(y);

    // Utilisation de const
    const z = 50;
    // z = 60; // Impossible de réassigner une constante
    Logger.log(z);
}

Google Apps Script中的控制结构

控制结构例如`if`, else, while et `for`用于在 Google Apps Script 中管理执行流程。

/**
 * Structures de Contrôle en Google Apps Script
 */
function exempleStructuresControleGAS() {
    // Votre code ici
    var condition = true;

    if (condition) {
        Logger.log("La condition est vraie.");
    } else {
        Logger.log("La condition est fausse.");
    }

    var compteur = 0;
    while (compteur < 5) {
        Logger.log(compteur);
        compteur++;
    }

    for (var i = 0; i < 3; i++) {
        Logger.log(i);
    }
}

参数和作用域在 Google Apps Script 中

参数和作用域在 GAS 脚本开发中起着至关重要的作用。了解它们的工作原理,以避免出现意外行为。

/**
 * Paramètres et Scopes en Google Apps Script
 */
function exempleParametresScopesGAS(parametre) {
    // Votre code ici
    var variableGlobale = "Je suis global";

    function afficherParametre() {
        Logger.log(parametre);
    }

    afficherParametre();
    Logger.log(variableGlobale);
}

常量、变量和字母在 Google Apps Script 中

理解…​之间的差别`const`, var, et `let`对于在Google Apps Script中有效使用变量至关重要。

/**
 * Constantes, Variables, et Lettres en Google Apps Script
 */
function exempleConstantesVariablesLettresGAS() {
    // Votre code ici
    const constante = "Je ne change pas";
    Logger.log(constante);

    var variable = "Je peux changer";
    Logger.log(variable);

    let lettre = "Je peux aussi changer, mais seulement dans mon bloc";
    Logger.log(lettre);
}

Google Apps Script 中的循环

循环,例如`for` et while, 是遍历元素和执行重复操作所必需的。

/**
 * Boucles en Google Apps Script
 */
function exempleBouclesGAS() {
    // Votre code ici
    for (var i = 0; i < 3; i++) {
        Logger.log(i);
    }

    var condition = true;
    var compteur = 0;

    while (condition) {
        Logger.log("Tour de boucle");
        compteur++;
        if (compteur === 3) {
            condition = false;
        }
    }
}

Google Apps Script 中的对象

对象用于结构化数据。在 GAS 中,许多内置对象有助于与 Google 服务进行交互。

/**
 * Objets en Google Apps Script
 */
function exempleObjetsGAS() {
    // Votre code ici
    var feuille = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
    var cellule = feuille.getRange("A1");
    cellule.setValue("Nouvelle valeur");
}

常量、变量和字母在 Google Apps Script 中

理解…​之间的差异`const`, var, et `let`这对于在 Google Apps Script 中高效使用变量是必不可少的。

/**
 * Constantes, Variables, et Lettres en Google Apps Script
 */
function exempleConstantesVariablesLettresGAS() {
    // Votre code ici
    const constante = "Je ne change pas";
    Logger.log(constante);

    var variable = "Je peux changer";
    Logger.log(variable);

    let lettre = "Je peux aussi changer, mais seulement dans mon bloc";
    Logger.log(lettre);
}

Google Apps Script 中的函数

函数是编程中的基本要素。在 GAS 中,它们可以以多种方式声明和调用。

/**
 * Fonctions en Google Apps Script
 */
function exempleFonctionsGAS() {
    // Votre code ici
    function additionner(a, b) {
        return a + b;
    }

    var resultat = additionner(2, 3);
    Logger.log(resultat);

    // Fonction anonyme
    var multiplier = function (x, y) {
        return x * y;
    };

    Logger.log(multiplier(4, 5));
}

Google Apps Script 中的剩余参数和展开运算符

剩余运算符 (…​) 和传播 (…​) 对于以简洁方式操作数组和对象很有用。

/**
 * Opérateurs de Repos et de Propagation en Google Apps Script
 */
function exempleOperateursReposPropagationGAS() {
    // Votre code ici
    // Opérateur de repos (...) pour les tableaux
    var nombres = [1, 2, 3, 4, 5];
    var [...copieNombres] = nombres;
    Logger.log(copieNombres);

    // Opérateur de propagation (...) pour les objets
    var objOriginal = { x: 1, y: 2 };
    var objClone = { ...objOriginal, z: 3 };
    Logger.log(objClone);
}

在 Google Apps Script 中的解构赋值

解构赋值是一种强大的功能,允许以简洁的方式从对象和数组中提取值。

/**
 * Affectation par Décomposition en Google Apps Script
 */
function exempleAffectationDecompositionGAS() {
    // Votre code ici
    var coordonnees = [3, 4];
    var [x, y] = coordonnees;
    Logger.log(x);
    Logger.log(y);

    var utilisateur = { nom: "John", age: 30 };
    var { nom, age } = utilisateur;
    Logger.log(nom);
    Logger.log(age);
}

Google Apps Script 中的集合和声明式编程

Google Apps Script 支持诸如数组之类的数据结构,以及函数式编程和声明式迭代 (><命令式), 诸如`map`, reduce et forEach。

/**
 * Collections et Programmation Déclarative en Google Apps Script
 */
function exempleCollectionsFonctionnelleGAS() {
    // Votre code ici
    // Exemple de tableau (collection)
    var nombres = [1, 2, 3, 4, 5];

    // Utilisation de forEach
    nombres.forEach(function (nombre) {
        Logger.log(nombre);
    });

    // Utilisation de map
    var carresNombres = nombres.map(function (nombre) {
        return nombre * nombre;
    });
    Logger.log(carresNombres);

    // Utilisation de reduce
    var somme = nombres.reduce(function (acc, nombre) {
        return acc + nombre;
    }, 0);
    Logger.log(somme);
}

结论

本备忘录通过具体代码示例说明了Google Apps Script的基本概念。利用这些知识,您可以自动化日常任务、自定义文档,并充分发挥Google Apps Script的功能。

相关文章