[javascript] Formatta una cella di Google Fogli in testo semplice tramite Apps Script


Answers

Un complemento alla buona risposta cristiana: ho notato che se la tua cella obiettivo è già stata impostata in formato testo (manualmente), impostando un valore con range.setValue() che potrebbe non essere interpretato come testo (come una data o un numero), cambierà automaticamente il formato del numero. Quindi la buona soluzione, se si vuole sicuramente mantenere un formato di testo è

range.setValue ( "01.293.849,847 mila") NumberFormat ( "@").;

e non

range.numberFormat ( "@") setValue ( "01.293.849,847 mila.");

Question

Utilizzando Google Apps Script, voglio impostare il formato per una cella di Google Sheets in testo semplice.

La ragione per cui voglio farlo è che voglio mostrare una data nel formato data americano (MM / GG / AAAA). [Possiamo supporre che la localizzazione nell'account Google dell'OP sia impostata per utilizzare GG / MM / AAAA, un formato di data più comune. -Ed.]

Creo la stringa in questo modo:

var thisDate = Utilities.formatDate (new Date (), SpreadsheetApp.getActiveSpreadsheet (). getSpreadsheetTimeZone (), "MM / d / yyyy");

... che restituisce la data nel formato statunitense, 13/06/2012 , che è quello che voglio. Tuttavia, quando imposto il valore di una cella su quella stringa:

sheet.getRange (1, n). setValue (thisDate);

... la data è formattata nella cella in base alla mia lingua, 13/06/2012 , non al formato degli Stati Uniti.

Anche la seguente operazione non riesce, poiché la data viene restituita nel formato standard, non nel formato USA:

sheet.getRange (1, n). getValue () == "06/13/2012"

Quando la cella è formattata come testo normale e non una data, tutto funziona correttamente.

Quindi, la mia domanda è, come formattare una cella usando JavaScript.




Un altro modo per forzare il valore da salvare come testo normale:

Preventare una virgoletta: ' . Ciò non ha alcun effetto sul valore visualizzato e anche leggendo il valore non è incluso il marchio di valutazione.

let dateStr = '07-07-20017';
sheet.getRange(x, y).setValue("'" + dateStr);

let backStr = sheet.getRange(x, y).getValue();
assert(dateStr === backStr);



Related