javascript tutorial - Formatta una cella di Google Fogli in testo semplice tramite Apps Script





italiano spreadsheet (6)


L'ho fatto come sotto e funziona come mi aspettavo. La colonna My B mostra il numero zero a 3 cifre corretto (ad es., 004) e la colonna C mostra il numero di 10 cifre corretto a zero (ad esempio, 0060000001) come testo. Ho scaricato il file convertito in Excel come testo con gli zeri imbottiti. Penso che farebbe il trucco anche con il Date come testo.

winSS.getRange ( "B2 US: B!") setNumberFormat ( "000") setNumberFormat ( "@");.. winSS.getRange: setNumberFormat ( "0000000000") setNumberFormat ( "@"); ( "US C2 C!")..

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 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.");




L'altra risposta, per impostare il formato su "testo normale" in javascript, non funziona. Tuttavia, questo fa:

sheet.getRange(1,n).setNumberFormat('@[email protected]');

Quindi il valore magico per la formattazione del testo programmaticamente è '@ STRING @'!




Sfortunatamente il testo del piano non andava bene. Documento non appena la cella ottiene qualcosa come una data, basta formattare la cella. Trovato un modo per non creare la data)

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

Scusa risposta così in ritardo. Tutte le mani non hanno raggiunto.




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);







javascript google-apps-script google-spreadsheet format plaintext