W tym dokumencie opisano, jak definiować nowe wzorce formatu daty i liczby, które można uwzględnić w żądaniu do interfejsu API.
Formaty daty i godziny oraz liczb pozwalają określić sposób wyświetlania danych w arkuszu. Arkusze Google udostępniają kilka popularnych formatów do wyboru, ale możesz też zdefiniować własne formaty.
W interfejsie Arkuszy formaty liczb i dat stosuje się do komórek za pomocą menu Format > Liczba. W interfejsie Google Sheets API te formaty ustawia się za pomocą wywołania metody spreadsheets.batchUpdate, które wysyła UpdateCellsRequest lub RepeatCellRequest.
W żądaniu konfigurujesz obiekt NumberFormat, określając NumberFormatType (np. NUMBER, CURRENCY, PERCENT, DATE lub TIME) i opcjonalny ciąg znaków pattern. Jeśli pominiesz parametr pattern, Arkusze użyją domyślnego wzorca formatu dla określonego parametru type na podstawie parametru locale arkusza kalkulacyjnego (na przykład $1,000.12 dla parametru CURRENCY w en_US).
Przykładowy kod Ustawianie niestandardowego formatu daty i godziny lub formatu dziesiętnego dla zakresu pokazuje, jak ustawić wzorzec formatu za pomocą interfejsu Sheets API. Pamiętaj, że rzeczywiste renderowanie formatu zależy od locale arkusza kalkulacyjnego.
W tym dokumencie przyjęto, że locale to en_US. Możesz określić locale arkusza kalkulacyjnego, odczytując obiekt SpreadsheetProperties za pomocą metody spreadsheets.get zasobu spreadsheets.
Więcej przykładów znajdziesz w artykułach Formatowanie podstawowe i Formatowanie warunkowe.
Wartości daty i godziny
Arkusze, podobnie jak większość innych aplikacji do obsługi arkuszy kalkulacyjnych, traktują wartości daty i godziny jako wartości dziesiętne. Dzięki temu możesz wykonywać na nich działania arytmetyczne w formułach, np. zwiększać liczbę dni lub tygodni, dodawać lub odejmować 2 daty i godziny oraz wykonywać inne podobne operacje.
Arkusze używają formy daty epoki, która jest powszechnie używana w arkuszach kalkulacyjnych. Część całkowita wartości (po lewej stronie przecinka) to liczba dni od 30 grudnia 1899 r. Część ułamkowa (po prawej stronie przecinka) określa czas jako ułamek dnia. Na przykład 1 stycznia 1900 r. w południe to 2.5, 2, ponieważ jest to 2 dni po 30 grudnia 1899 r., i 0.5, ponieważ południe to połowa dnia. 1 lutego 1900 r. o godz. 15:00 to 33.625.
Arkusze prawidłowo traktują rok 1900 jako rok zwykły, a nie przestępny. Numery seryjne daty i godziny nie przechowują przesunięcia strefy czasowej. Zamiast tego są one oparte na timeZone arkusza kalkulacyjnego, które można odczytać z obiektu SpreadsheetProperties za pomocą metody spreadsheets.get.
Wzorce formatu daty i godziny
Wzorzec formatu daty i godziny to ciąg podłańcuchów tokenów, które Arkusze zastępują odpowiednimi elementami daty i godziny (takimi jak miesiąc lub godzina) podczas analizy.
Tokeny formatu daty i godziny
W tabeli poniżej znajdziesz podłańcuchy tokenów, których możesz używać we wzorcu formatu daty i godziny. Znak + wskazuje, że poprzedni znak może pojawić się co najmniej raz i nadal pasować do wzorca. Arkusze traktują znaki, których nie ma w tej tabeli, jako literały i wyświetlają je bez zmian.
| Token | Opis |
|---|---|
h |
Godzina. Przełącza między formatem 12- i 24-godzinnym w zależności od tego, czy w ciągu znaków występuje wskaźnik AM lub PM. |
hh+ |
Tak samo jak poprzednio, ale z zerem na początku w przypadku liczb 1–9. |
m |
Jeśli poprzedni token nieliteralny reprezentował godziny lub następny reprezentuje sekundy, ten token reprezentuje minuty w godzinie (bez zera na początku). W innym przypadku reprezentuje miesiąc roku jako liczbę (bez zera na początku). |
M |
Miesiąc roku bez zera na początku. Użyj tego tokena, aby we wzorcu wyraźnie określić miesiąc, a nie minutę. |
mm |
Tak samo jak m, ale z zerem na początku w obu przypadkach. |
MM |
Miesiąc roku z zerem na początku. Użyj tego tokena, aby we wzorcu wyraźnie określić miesiąc, a nie minutę. |
mmm |
Trzyliterowy skrót nazwy miesiąca (np. „lut”). |
mmmm |
Pełna nazwa miesiąca. mmmmmm+ również pasuje do tego zapytania. |
mmmmm |
Pierwsza litera miesiąca (np. „C” dla czerwca). |
s |
Sekundy w minucie bez zera na początku. |
ss |
Sekundy w minucie z zerem na początku. |
[h+] |
Liczba godzin, które upłynęły w danym okresie. Liczba liter wskazuje minimalną liczbę cyfr (dodaje zera na początku). |
[m+] |
Liczba minut, które upłynęły w danym przedziale czasu. Liczba liter wskazuje minimalną liczbę cyfr (dodaje zera na początku). |
[s+] |
Liczba sekund, które upłynęły w danym okresie. Liczba liter wskazuje minimalną liczbę cyfr (dodaje zera na początku). |
d |
Dzień miesiąca bez zera na początku w przypadku liczb mniejszych niż 10. |
dd |
Dzień miesiąca z zerem na początku w przypadku liczb mniejszych niż 10. |
ddd |
Dzień tygodnia, trzyliterowy skrót (np. „pon”). |
dddd+ |
Dzień tygodnia, pełna nazwa. |
y |
dwucyfrowy rok, |
yy |
|
yyy |
Rok w formacie 4-cyfrowym. |
yyyy+ |
|
a/p |
Wyświetla „a” w przypadku godzin przed południem i „p” w przypadku godzin po południu. Zmienia też format godzin na 12-godzinny. Jeśli litera tokena jest wielka, dane wyjściowe też będą wielką literą. |
am/pm |
Podobnie jak powyżej, ale wyświetla „AM” lub „PM” i zawsze jest pisane wielkimi literami. |
0 |
Dziesiętne części sekundy. Możesz zwiększyć precyzję do 2 cyfr za pomocą 00 lub do 3 cyfr (milisekundy) za pomocą 000. |
\ |
Traktuje następny znak jako literał, a nie jako znak specjalny. |
"text" |
Wyświetla tekst w cudzysłowie jako literał. |
Przykłady formatów daty i godziny
W tabeli poniżej znajdziesz przykładowe wzorce zapisu daty i godziny Tuesday, April 5, 2016, 4:08:53.528 PM oraz odpowiadające im dni, miesiące, lata i godziny. W drugiej sekcji tabeli znajdziesz przykłady formatów czasu, który upłynął, dla wartości 3 hours, 13 minutes, 41.255 seconds:
| Wzorce daty i godziny | Tuesday, April 5, 2016, 4:08:53.528 PM |
|---|---|
h:mm:ss.00 a/p |
16:08:53.53 |
hh:mm A/P".M." |
16:08 |
yyyy-mm-dd |
2016-04-05 |
mmmm d \[dddd\] |
5 kwietnia [wtorek] |
h PM, ddd mmm dd |
16:00, wt., 5 kwietnia |
dddd, m/d/yy at h:mm |
Wtorek, 5.04.2016 o 16:08 |
| Wzorce czasu między zdarzeniami | 3 hours, 13 minutes, 41.255 seconds |
[hh] |
03 |
[mmmm] |
0193 |
[ss] |
11621 |
Wzorce formatu liczb
Wzorzec formatu liczb to ciąg podłańcuchów tokenów, które Arkusze zastępują odpowiednimi reprezentacjami liczb podczas analizy. Wzorzec formatu liczb może składać się z maksymalnie 4 sekcji rozdzielonych średnikami, które definiują osobne formaty używane dla liczb dodatnich, liczb ujemnych, zera i tekstu (w tej kolejności):
[POSITIVE FORMAT];[NEGATIVE FORMAT];[ZERO FORMAT];[TEXT FORMAT]
Nie musisz uwzględniać wszystkich 4 sekcji w formacie. Jeśli uwzględnisz tylko jedną sekcję, Arkusze będą używać tego formatu dla wszystkich wartości. Jeśli użyjesz 2 sekcji, pierwszy format zostanie zastosowany do zera i liczb dodatnich, a drugi do liczb ujemnych. Użycie 3 sekcji pozwala zdefiniować osobne formaty dla liczb dodatnich, ujemnych i zer. Na przykład:
[NUMBER FORMAT] [POSITIVE/ZERO FORMAT];[NEGATIVE FORMAT] [POSITIVE FORMAT];[NEGATIVE FORMAT];[ZERO FORMAT]
Jeśli jednak są co najmniej 2 sekcje, a ostatnia sekcja jest formatem tekstowym, Arkusze traktują tę sekcję jako format tekstowy, a pozostałe zachowują się tak, jakby było o 1 sekcję mniej. Dzięki temu, dodając końcowy format tekstowy, można zdefiniować formaty takie jak:
[POSITIVE/ZERO FORMAT];[NEGATIVE FORMAT];[TEXT FORMAT] [NUMBER FORMAT];[TEXT FORMAT]
Analiza formatu pod kątem sekcji odbywa się przed innymi analizami, więc możliwe jest uwzględnienie formatu daty lub godziny jako jednej z sekcji (choć jest to mało przydatne).
Tokeny formatu liczb
W tabeli poniżej znajdziesz podłańcuchy tokenów, których możesz używać w sekcji formatu, aby określić, jak mają być reprezentowane wartości w tej sekcji.
| Token | Opis |
|---|---|
0 |
Reprezentuje cyfrę w liczbie. Jeśli cyfra jest nieistotnym zerem, jest renderowana jako 0. Na przykład format liczby 00.0 wyświetla liczbę 3 jako „03.0”. |
# |
Reprezentuje cyfrę w liczbie. Jeśli cyfra jest nieznaczącym zerem, nie jest renderowana. Na przykład format liczbowy ##0 wyświetla liczbę 12 jako „12”. |
? |
Reprezentuje cyfrę w liczbie. Jeśli cyfra jest nieuwzględnianym zerem, jest wyświetlana jako spacja. Jest to często używane do wyrównywania separatora dziesiętnego w kolumnie, gdy używane są czcionki o stałej szerokości. Na przykład format liczb ???.??? wyświetla liczbę 12, 4 jako: „12.4”. |
. |
Pierwsza kropka reprezentuje separator dziesiętny w liczbie. Kolejne kropki są renderowane jako literały. Jeśli w formacie uwzględnisz separator dziesiętny, będzie on zawsze wyświetlany, nawet w przypadku liczb całkowitych. Na przykład #0.# renderuje liczbę 3 jako „3.”. |
% |
Wyświetla się jako literał, ale powoduje też, że istniejące liczby są mnożone przez 100 przed renderowaniem, aby wartości procentowe były bardziej czytelne. Na przykład format liczb #% wyświetla liczbę 0, 25 jako „25%”. |
, |
Jeśli pojawia się między dwoma znakami cyfrowymi (0, # lub ?), cała liczba jest renderowana z separatorami grupowania (grupowanie według tysięcy). Jeśli występuje po cyfrach, skaluje je o tysiąc na każdy przecinek (np. format #0.0,, wyświetla liczbę 12 200 000 jako 12.2). |
E- |
Wyświetla liczbę w formacie naukowym, przy czym formatowanie po lewej stronie znaku E jest używane dla części bez wykładnika, a formatowanie po prawej stronie znaku E jest używane dla części z wykładnikiem. E+ wyświetla znak + w przypadku wykładników dodatnich. E- pokazuje znak tylko w przypadku wykładników ujemnych. Jeśli użyjesz małych liter, dane wyjściowe e również będą zapisane małymi literami.
Na przykład format liczby ##0.00#E+## powoduje, że liczba 0,0000001 jest wyświetlana jako „100.00E-9”. |
E+ |
|
e- |
|
e+ |
|
/ |
Jeśli pojawia się między dwoma znakami cyfrowymi (0, # lub ?), traktuje te grupy cyfr jako format ułamkowy. Na przykład format liczbowy 0 #/# wyświetla liczbę 23, 25 jako 23 1/4. Mianownik może też być liczbą całkowitą, która jest wtedy wymuszana jako mianownik. Format liczb 0 #/8 wyświetla liczbę 23,25 jako 23 2/8. Część ułamkowa nie jest renderowana, jeśli licznik wynosi 0. Liczba 23,1 z formatem liczb 0 #/3 jest wyświetlana jako 23 (ponieważ 0,1 jest zaokrąglane do 0/3). / nie jest zgodny z formatem naukowym ani formatem z separatorem dziesiętnym. |
* |
Uwzględniono ze względu na zgodność z formatami liczb w programie Microsoft Excel. Arkusze ignorują ten token. |
_ |
Pomija następny znak i wyświetla spację. Użyj tego tokena, aby wyrównać formaty liczb, w których wartość ujemna jest ujęta w nawiasy. |
\ |
Traktuje następny znak jako literał, a nie jako znak specjalny. Na przykład format liczbowy \#0 wyświetla liczbę 10 jako „#10”. |
"text" |
Wyświetla tekst w cudzysłowie jako literał. |
@ |
Jeśli komórka zawiera tekst, wstawia nieprzetworzony tekst z komórki. Nie jest zgodny z żadnymi innymi znakami specjalnymi i nie jest wyświetlany w przypadku wartości liczbowych (które są wyświetlane w formacie ogólnym). |
$ - + ( ) : space |
Arkusze traktują te znaki i typowe symbole walut (takie jak $, €, £ i ¥) jako literały i wyświetlają je bez zmian. |
Metainstrukcje
Dodatkowo każda sekcja formatu może zawierać opcjonalne instrukcje meta, ujęte w znaki [], które poprzedzają format i zawierają dodatkowe instrukcje:
| Instrukcja | Opis |
|---|---|
[condition] |
Zastępuje domyślne porównanie dodatnie, ujemne lub zerowe sekcji innym wyrażeniem warunkowym. Na przykład [<100]"Low";[>1000]"High";000 wyświetla słowo „Niski” w przypadku wartości poniżej 100, „Wysoki” w przypadku wartości powyżej 1000 i liczbę 3-cyfrową (z zerami na początku) w przypadku wartości pomiędzy. Warunki możesz stosować tylko do pierwszych 2 podformatów. Jeśli liczba pasuje do więcej niż jednego podformatu, Arkusze używają pierwszego dopasowania. Jeśli istnieje trzeci format, Arkusze używają go do „wszystkiego innego”. W przeciwnym razie, jeśli liczba nie pasuje do żadnego formatu, Arkusze wyświetlają znaki „#” na całej szerokości komórki. Jeśli istnieje, czwarty format jest zawsze używany do tekstu. |
[Color] or [Color#] |
Powoduje, że każda wartość renderowana przez ten podformat jest wyświetlana z określonym kolorem tekstu. Prawidłowe wartości parametru Color to: Black (czarny), Blue (niebieski), Cyan (błękitny), Green (zielony), Magenta (purpurowy), Red (czerwony), White (biały) lub Yellow (żółty).
Prawidłowe wartości „#” w Color# to liczby od 1 do 56. Kolory formatu liczb zastępują wszystkie kolory wprowadzone przez użytkownika w komórce, ale nie zastępują kolorów ustawionych przez formatowanie warunkowe. Ta paleta kolorów zawiera listę kolorów odpowiadających poszczególnym liczbom. Są one oparte na właściwości ColorIndex w programie Microsoft Excel. |
[$currency] |
Wyświetla określony symbol lub kod waluty jako literał (np. [$€]#,##0.00 lub [$CAD]#,##0.00). Jeśli po łączniku dodasz opcjonalny kod języka (np. [$CAD-1009]), Arkusze go zignorują. |
Przykładowe formaty liczb
W tabeli poniżej znajdziesz przykładowe wzorce oraz odpowiadające im sformatowane liczby:
| Liczba | Wzór | Wartość sformatowana |
|---|---|---|
| 12345,125 | ####.# |
12345.1 |
| 12,34 | 000.0000 |
012.3400 |
| 12 | #.0# |
12.0 |
| 5,125 | # ???/??? |
5 1/8 |
| 12000 | #,### |
12 000 |
| 1234.56 -1234.56 |
$#,##0.00;($#,##0.00) |
1234,56 PLN (1234,56 PLN) |
| 1230000 | 0.0,,"M" |
1,2 mln |
| 1234500000 | 0.00e+00 |
1,23e+09 |
| 123114.15115 MyText |
###0.000;"TEXT: "_(@_) |
123114.151 TEXT: MyText |
| 1234 -1234 0 MyText |
[Blue]#,##0;[Red]#,##0;[Green]0.0;[Magenta]_(@_) |
1,234 1,234 0.0 MyText |
| 1005 32 527 |
[>1000]"HIGH";[Color43][<=200]"LOW";0000 |
WYSOKA NISKA 0527 |