web-dev-qa-db-fra.com

La mise en forme des cellules dans Google Spreadsheets n'est pas conservée

Mon Google Spreadsheet ne conserve pas certaines mises en forme. Chaque fois que je règle, par exemple, la taille de police sur 12, pour la feuille entière, les données récemment copiées utilisent une taille de police plus petite.

Cela n'a commencé à être un problème qu'après une mise à niveau vers New Sheets, vers le mois de mars.

Un exemple sheet qui recrée le problème:

Étapes pour reproduire

  1. CTRL + A deux fois pour sélectionner la feuille entière
  2. Définir la taille de la police sur 12
  3. Copier et coller du texte en clair dans la colonne E

Résultats attendus

  1. Le texte de la colonne E est en taille de police 12

Résultats réels

  1. Le texte de la colonne E est en smaller taille de la police

UPDATE: Pour recréer le problème de formatage de la date, j'ai créé un autre feuille .

Étapes à reproduire

  1. Définissez le format de date de la colonne D sur DD MMM YYY (comme au 1er juin 2015)
  2. Insérer un court test dans une cellule de la colonne B

Résultats attendus

  1. LMDT déclenché le OnEdit événement préserve la mise en forme: 1 Jun 2015

Résultats réels

  1. LMDT déclenché sur l'événement OnEdit ne conserve pas le formatage: 01/06/2015 07:20:34

    time = Utilities.formatDate(time, "UTC", "dd-MM-yyyy **HH:mm:ss** ");
    
    s.getRange(r.getRow(), LMDTCol).setValue(time);
    

Oui, le formatage est défini sur dd-MM-yyyy HH: mm: ss mais le formatage des colonnes avait une priorité supérieure à celle des cinq dernières années. définir dans le script.

1
matcheek

Pâte manuelle

En effet, coller du texte brut avec Ctrl-V la taille par défaut est 10. Il semble que le collage soit réputé écraser le formatage de la cellule, même s'il s'agit de texte brut.

La solution est de coller en utilisant Ctrl-Shift-V, ce qui signifie coller uniquement les valeurs . Ensuite, la taille de la police est de 12 points, telle que définie dans la feuille de calcul, quel que soit l’emplacement du texte.

Modification du script

Généralement, lorsque vous utilisez simplement .setValue(value), la mise en forme existante de la cellule reste. Par exemple, si la cellule A1 a été formatée comme "1er juin 2015", alors l'exécution de

sheet.getRange("A1").setValue(new Date());

respectera cette mise en forme.

Le format est modifié uniquement si le script applique explicitement un formatage différent avec Utilities.formatDate(). Je dirais que c'est à prévoir, et le fait que l'ancienne version se comporte différemment est plutôt un bug ou une mauvaise conception.

On sait que les nouvelles feuilles ont un peu fonctionnalité de formatage différente .

La migration peut être un changement décisif pour certains scripts: par exemple, l'un de mes scripts a cessé de fonctionner car il essayait de stocker plus de 50000 caractères dans une seule cellule (ce qui était possible avec l'ancienne version mais pas avec la nouvelle).

1
user79865