Google Spreadsheet Script getValues ​​- Force int au lieu de chaîne

Existe-t-il un moyen de forcer .getRange (). GetValues ​​() pour renvoyer un int? Bien que seuls les nombres existent dans ma gamme, il les renvoie comme des chaînes. Je voudrais éviter d'utiliser parseInt dans chacune de mes déclarations ou de créer un tableau distinct avec des valeurs converties.

Ou est-ce la seule solution, pour obtenir le tableau et ensuite analyser l'ensemble du tableau dans une boucle?

Vous pouvez le faire facilement en utilisant l'opérateur '+' unary comme suit:

Obtenez d'abord vos valeurs à partir de votre feuille de calcul en utilisant getValue() ou getValues() . Supposons que vous obtenez deux de ces valeurs, et les stockez en A = 1 et B = 2 . Vous pouvez les forcer à être reconnus comme des nombres en utilisant n'importe quel opérateur binaire mathématique à l'exception de + , qui concatène les chaînes, donc A - B = -1 , tandis que A + B renverra '12'.

Vous pouvez forcer les variables à être des nombres simplement en utilisant l'opérateur + unary avec n'importe quelle variable qui pourrait être interprétée comme une chaîne. Par exemple, +A + +B renverra la valeur correcte de 3.

Vous pouvez utiliser parseInt() ou Number()

Exemple

 var A='12';var B=5 A+B = 125 parseInt(A)+B = 17 Number(A)+B = 17 

Cela dit, getValues ​​() n'est pas censé renvoyer des chaînes, à moins que les valeurs ne contiennent de l'espace ou d'autres caractères non numériques … ces valeurs sont-elles entrées manuellement ou résultent d'une fonction?

GetValues ​​() renvoie un tableau 2D d'Objets – ce sont des objets Strings, Integers ou Date en fonction de ce qu'ils sont formatés comme dans votre feuille de calcul.

Revenez à votre feuille de calcul et voyez ce que les cellules qui ont des valeurs entières sont formatées comme. Modifiez-les comme des nombres entiers et vous devriez récupérer des nombres entiers.