2017-06-28 4 views
0

Il semble que google sheets fasse la même erreur qu'Excel, en "anticipant" et en convertissant la valeur "1.1.1" en 2001.01.01 en faisant sheet.appendRow. J'ai essayé de mettre le format numérique de la colonne en charge à "@" (qui devrait être du texte brut) avant d'insérer des lignes - mais semble inefficace. D'un autre côté, faire la même chose après les insertions est également inefficace, car le contenu est déjà "daté". Ajouter 'avant fonctionne, mais ce n'est pas ce dont j'ai besoin.Google Script Sheets API - format de nombre par défaut

Existe-t-il un moyen de donner un format par défaut ou de désactiver une telle conversion automatique (à partir de google script)?

+0

Eh bien, au moins range.setValue fonctionne comme prévu. – ZorgoZ

Répondre

0

J'ai une cellule dans laquelle une forme dépose un nombre variable de valeurs séparées par une virgule comme: "1, 2, 4, 6" etc - quand il n'y a que trois réponses, Google "m'aide" en convertissant la valeur dans un objet de date. Mais il est censé être une liste de choix ...

Il est pas joli, mais j'ai réussi une solution de contournement à l'aide .getDisplayValue au lieu de .getValue - elle change la valeur de la cellule dans une chaîne, donc si vous avez besoin de faire d'autres manipulations qui dépendent de la valeur d'un nombre ou quelque chose, évidemment, cela échoue.

J'écrasera la valeur de la cellule de problème dans mon tableau avant de passer à .appendRow

//getting the values 
var values = s.getRange(row,1,1,lastCol).getValues()[0]; 
//brute force crushing of problem value 
values[5] = s.getRange(row,6).getDisplayValue();