[APP SCRIPT] Condition pour importer les données

Bonjour,

Voici le script que j'utilise pour le résultat suivant :

function NOM() {

  var urlAPI = "https://api.realt.community/v1/token";
  var classeurAPI = SpreadsheetApp.getActiveSpreadsheet();
  var feuilleAPI = classeurAPI.getSheetByName('NOM');
  var cellAPI = feuilleAPI.getRange('A2:E');

  var response = UrlFetchApp.fetch(urlAPI, {
    "method": "GET",
    "headers": {
      "accept":"<*/*>",
      "X-AUTH-REALT-TOKEN": "Clé perso",
      "Content-Type": "application/json"
    }
  });

  cellAPI.clearContent();

  var output = [];
  var json = response.getContentText();
  var Data = JSON.parse(json);
  for (let i in Data) { 

    var fullname = Data[i].fullName

    var symbol = Data[i].symbol
    var regExpLettre = new RegExp("REALTOKEN-([a-zA-Z]*)")
    try{var Lettre= regExpLettre.exec(symbol)[1]}catch(e){var Lettre =''}

    var shortName = Data[i].shortName
    var regExpOLD = new RegExp("(OLD)")
    try{var OLD= regExpOLD.exec(shortName)[1]}catch(e){var OLD =''}

  output.push([Lettre,
              OLD,
              symbol,
              fullname, 
              ]);

  }       
  if (output.length > 0) {
    feuilleAPI.getRange(2, 1, output.length, output[0].length).setValues(output).sort([{column: 1, ascending: false},{column: 2, ascending: true}]);
  }
}
image

Voici ce j'obtiens.

dans l'immédiat ça me suffit, mais je me dit que je pourrais filtrer directement ce que je veux voir dans mon Sheet.

je me doute que j'ai une condition à placer dans mon script du type " If {} else {} " mais je ne sais pas ou placer cet élément supplémentaire exactement.

l'idée serait de filtrer et d'importer que les éléments qui ne contient pas "OLD" dans l'élément "OLD"' et qui ne contient pas "D" dans l'élément "Lettre"

Merci

salut Alex ... sans tester, tu peut essayer ceci

if (OLD=="OLD" || Lettre=='D') { } else { 
  output.push([Lettre,
              OLD,
              symbol,
              fullname, 
              ]);
}

Rhhhh... C'est ce que j'avais fait mais j'oublie toujours de mettre 2 "="..

Question ! ( quand même )

une différence entre les " " et les ' ' ?

et du coup le !== veut dire "ne contient pas" ?

merci en tout cas !

"" et '' c'est pareil en script, mais il ne faut pas utiliser " ou ' dans les données si on utilise le même signe pour encadrer la donnée

mais il y a mieux ... l'accent grave https://www.w3schools.com/js/js_string_templates.asp

cela permet d'inclure des guillemets, des accents et même des retours à la ligne dans un string, exemple

const xmlString = `
<directory>
    <fieldset>
        <field id="displayName">Display name</field>
        <field id="firstName">First name</field>
        <field id="lastName">Last name</field>
        <field id="gender">Gender</field>
        <field id="jobTitle">Job title</field>
        <field id="workPhone">Work Phone</field>
        <field id="workPhoneExtension">Work Extension</field>
        <field id="skypeUsername">Skype Username</field>
        <field id="facebook">Facebook URL</field>
    </fieldset>
    <employees>
        <employee id="123">
            <field id="displayName">John Doe</field>
            <field id="firstName">John</field>
            <field id="lastName">Doe</field>
            <field id="gender">Male</field>
            <field id="jobTitle">Customer Service Representative</field>
            <field id="workPhone">555-555-5555</field>
            <field id="workPhoneExtension"/>
            <field id="skypeUsername">JohnDoe</field>
            <field id="facebook">JohnDoeFacebook</field>
        </employee>
        <employee id="456">
            <field id="firstName">John2</field>
            <field id="lastName">Doe2</field>
            <field id="displayName">John2 Doe</field>
            <field id="jobTitle">Customer Service Representative2</field>
            <field id="workPhone">555-555-5555</field>
            <field id="skypeUsername">JohnDoe2</field>
            <field id="facebook">JohnDoeFacebook2</field>
        </employee>
    </employees>
</directory>`

note bien l'accent grave en début et fin

pour les égalités (en réalité j'utilise peu === et !==)

Opérateurs d'égalité

Le résultat de l'évaluation fournie par un opérateur d'égalité est toujours un booléen, fonction de la vérité de la comparaison effectuée.

==

L'opérateur d'égalité.

!=

L'opérateur d'inégalité.

===

L'opérateur d'égalité stricte.

!==

L'opérateur d'inégalité stricte.

Merci pour ces informations précieuses !

Rechercher des sujets similaires à "app script condition importer donnees"