透過日期時間和數字格式,您可以控制資料在試算表中的顯示方式。Google 試算表提供了一些可選用的常見格式,但您也可以自行定義格式。
在 Google 試算表 UI 中,您可以使用「格式」>「數字」選單,將數字和日期格式套用至儲存格。在 Sheets API 中,您可以使用 spreadsheets.batchUpdate
方法呼叫,傳送 UpdateCellsRequest
或 RepeatCellRequest
來設定這些格式。
本頁說明如何定義新的日期和數字格式模式,並納入 API 要求。範例「為範圍設定自訂日期時間或十進位格式」說明如何使用 API 設定格式模式。請注意,實際的格式呈現方式取決於試算表的 locale
。本指南假設 locale
為 en_US
。您可以透過 spreadsheets.get
要求讀取 SpreadsheetProperties
,判斷試算表的 locale
。
日期和時間值簡介
與大多數其他試算表應用程式一樣,Google 試算表會將日期和時間值視為十進位值。因此您可以在公式中對這些值執行算術運算,例如遞增天數或週數、加減兩個日期和時間,以及執行其他類似的運算。
Google 試算表採用試算表常用的紀元日期格式。值中的整數部分 (小數點左側) 會從 1899 年 12 月 30 日起開始計算日期。小數部分 (小數點右側) 會將時間視為一天的分數。舉例來說,1900 年 1 月 1 日中午是 2.5
,2
,因為這是 1899 年 12 月 30 日之後的第 2 天,而 0.5
則是因為中午是半天。1900 年 2 月 1 日下午 3 點 是 33.625
。
Google 試算表會將 1900 年視為平年,而非閏年。
日期和時間格式模式
日期時間格式模式是一連串的權杖子字串,在剖析時會替換為對應的日期時間元素 (例如月份或小時)。
日期和時間格式權杖
下表定義可在日期時間格式模式中使用的權杖子字串。+
字元表示前一個字元可出現一或多次,且仍符合模式。如果字元未列於下表,系統會將其視為常值,並直接輸出。
權杖 | 說明 |
---|---|
h | 時段。根據字串中是否有上午或下午指標,切換為 12 小時制或 24 小時制。 |
hh+ | 與上一個相同,但 1 到 9 需加上前導 0。 |
m | 如果前一個非字面值權杖是小時,或後一個是秒數,則代表小時內的分鐘數 (不含開頭的 0)。否則,代表一年中的月份 (不含前置 0)。 |
M | 月份,前方不加 0。在模式中明確指出月份,而非分鐘。 |
mm | 與 m 相同,但兩種情況都以 0 開頭。 |
MM | 月份,前方加 0。在模式中明確指出月份,而非分鐘。 |
mmm | 月份縮寫 (三個字母),例如「Feb」。 |
mmmm | 完整月份名稱。mmmmmm+ 也符合這項規定。 |
mmmmm | 月份的第一個字母 (例如 6 月的「J」)。 |
s | 一分鐘內的第幾秒,前方不加 0。 |
ss | 一分鐘內的第幾秒,前方加 0。 |
[h+] | 時間範圍內經過的小時數。字母數量表示位數下限 (會新增前導零)。 |
[m+] | 時間長度經過的分鐘數。字母數量表示位數下限 (會新增前導零)。 |
[s+] | 時間長度經過的秒數。字母數量表示位數下限 (會新增前導零)。 |
d | 每月第幾日,如果數字小於 10,則不加前導 0。 |
dd | 每月第幾日,如果數字小於 10,前面會加上 0。 |
ddd | 星期幾,三個字母的縮寫 (例如「週一」)。 |
dddd+ | 星期幾,完整名稱。 |
y | 以 2 位數表示的年份。 |
yy | |
yyy | 4 位數年份。 |
yyyy+ | |
a/p | 上午顯示「a」,下午顯示「p」。也會將小時改為 12 小時制。如果權杖字母為大寫,輸出內容也會是這樣。 |
am/pm | 與上述格式相同,但會顯示「AM」或「PM」,且一律為大寫。 |
0 | 以十分之一秒為單位。您可以使用 00 將精確度提高至兩位數,或使用 000 提高至三位數 (毫秒)。 |
\ | 將下一個字元視為常值,而非任何特殊意義。 |
"text" | 會將引號內的文字顯示為字面值。 |
日期和時間格式範例
假設日期和時間為 Tuesday, April 5, 2016, 4:08:53.528 PM
,下表列出一些模式範例,以及對應的日期時間呈現方式。表格的第二個部分顯示經過時間為 3 hours, 13 minutes, 41.255 seconds
的經過時間格式範例:
日期時間模式 | Tuesday, April 5, 2016, 4:08:53.528 PM |
---|---|
h:mm:ss.00 a/p | 4:08:53.53 p |
hh:mm A/P".M." | 下午 4:08 |
yyyy-mm-dd | 2016-04-05 |
mmmm d \[dddd\] | 4 月 5 日 (星期二) |
h PM, ddd mmm dd | 4 月 5 日 (週二) 下午 4 點 |
dddd, m/d/yy at h:mm | 2016 年 4 月 5 日星期二下午 4:08 |
經過時間模式 | 3 hours, 13 minutes, 41.255 seconds |
[hh]:[mm]:[ss].000 | 03:13:41.255 |
[mmmm]:[ss].000 | 0193:41.255 |
數字格式模式
數字格式模式是一連串的權杖子字串,剖析後會替換成對應的數字表示法。數字格式模式最多可包含四個部分,並以半形分號分隔,分別定義正數、負數、零和文字的格式 (依序):
[POSITIVE FORMAT];[NEGATIVE FORMAT];[ZERO FORMAT];[TEXT FORMAT]
格式不一定要包含所有四個部分。如果只包含一個區段,所有值都會使用該格式。使用兩個區段時,系統會將第一個格式套用至零和正數,第二個格式則套用至負數。使用三個區段可為正數、負數和零定義不同的格式。例如:
[NUMBER FORMAT] [POSITIVE/ZERO FORMAT];[NEGATIVE FORMAT] [POSITIVE FORMAT];[NEGATIVE FORMAT];[ZERO FORMAT]
不過,如果包含兩個以上的區段,且最後一個區段是文字格式,則該區段會視為文字格式,其他區段則會視為少一個區段。因此,只要加入最終文字格式,就能定義下列格式:
[POSITIVE/ZERO FORMAT];[NEGATIVE FORMAT];[TEXT FORMAT] [NUMBER FORMAT];[TEXT FORMAT]
格式剖析為區段的作業會在其他剖析作業之前進行,因此日期或時間格式可能會納入其中一個區段 (但實用性有限)。
數字格式權杖
下表定義可在格式區段中使用的權杖子字串,用來定義該區段的值表示方式。
權杖 | 說明 |
---|---|
0 | 代表數字中的位數。如果數字是不重要的 0,系統會將其算為 0。舉例來說,數字格式 00.0 會將數字 3 顯示為「03.0 」。 |
# | 代表數字中的位數。如果數字是不重要的 0,系統就不會顯示。舉例來說,數字格式 ##0 會將數字 12 顯示為「12 」。 |
? | 代表數字中的位數。如果數字是不重要的 0,系統會將其顯示為空格。使用固定寬度字型時,這通常用於對齊資料欄中的小數點。舉例來說,數字格式 ???.??? 會將數字 12.4 算繪為「 12.4 」。 |
. | 第一個半形句號代表數字中的小數點。後續句號會以常值形式呈現。如果在格式中加入小數點,系統一律會顯示小數點,即使是整數也一樣。舉例來說,#0.# 會將數字 3 算繪為「3. 」。 |
% | 顯示為常值,但也會導致現有數字在算繪前乘以 100,讓百分比更容易解讀。舉例來說,數字格式 #% 會將數字 0.25 顯示為「25% 」。 |
, | 如果出現在兩位數的字元之間 (0 、# 或 ? ),系統會以分組分隔符號 (以千為單位分組) 顯示整個數字。如果逗號位於數字字元後方,則每出現一個逗號,數字就會縮放一千倍 (例如,格式 #0.0,, 會將數字 12,200,000 顯示為 12.2 )。 |
E- | 以科學記號格式算繪數字,E 左側的格式用於非指數部分,E 右側的格式則用於指數部分。E+ 會顯示正指數的 + 符號。E- 只會顯示負指數的符號。如果使用小寫字母,輸出內容 e 也會是小寫字母。舉例來說,數字格式 ##0.00#E+## 會將數字 0.0000001 顯示為「100.00E-9 」。 |
E+ | |
e- | |
e+ | |
/ | 如果出現在兩位數的字元之間 (0 、# 或 ? ),系統會將這些數字群組視為分數格式。舉例來說,數字格式 0 #/# 會將數字 23.25 顯示為 23 1/4 。分母也可以是整數常值,在此情況下,系統會強制將該整數做為分母。數字格式 0 #/8 會將數字 23.25 顯示為 23 2/8 。如果分子變成 0,系統就不會算繪分數部分。數字 23.1 採用 0 #/3 數字格式時,會只顯示 23 (因為 0.1 會四捨五入為 0/3)。/ 不支援科學記號格式或含有小數點的格式。 |
* | 這是為了與 Microsoft Excel 數字格式相容而加入的。目前系統會忽略這項設定。 |
_ | 底線權杖會略過下一個字元,並轉譯空格。這項功能可用於對齊負值以半形括號括住的數字格式。 |
\ | 將下一個字元視為常值,而非任何特殊意義。舉例來說,數字格式 \#0 會將數字 10 顯示為「#10 」。 |
"text" | 會將引號內的文字顯示為字面值。 |
@ | 如果儲存格有輸入文字,系統會插入儲存格的原始文字。不適用於任何其他特殊字元,也不會顯示數值 (會以一般格式顯示)。 |
$ - + ( ) : space | Google 試算表會將這些字元視為常值,並以未變更的狀態顯示。 |
中繼指令
此外,每個格式區段都可以有選用的元指令 (以 []
字元括住),這些指令會出現在格式之前,並提供額外指令。有兩種中繼指令類型,特定章節可同時使用這兩種指令:
指示 | 說明 |
---|---|
[condition] | 將區段的預設正數、負數或零比較結果,換成其他條件運算式。舉例來說, [<100]”Low”;[>1000]”High”;000 會針對低於 100 的值顯示「低」,針對高於 1000 的值顯示「高」,並針對介於兩者之間的值顯示三位數 (開頭為 0)。條件只能套用至前兩個子格式,如果號碼符合多個子格式,系統會使用第一個相符的子格式。如果還有第三種格式,則會用於「其他所有內容」;否則,如果數字與任一格式都不相符,系統會將其顯示為填滿儲存格寬度的「#」。如果存在,系統一律會使用第四種格式顯示文字。 |
[Color] or [Color#] | 導致這個子格式呈現的任何值,都會以指定文字顏色顯示。Color 的有效值為 Black、Blue、Cyan、Green、Magenta、Red、White 或 Yellow。Color# 中的「#」有效值為 1 至 56 (這份調色盤列出對應各個數字的顏色)。數字格式顏色會覆寫使用者在儲存格中輸入的任何顏色,但不會覆寫條件式格式設定的顏色。 |
數字格式範例
下表列出一些模式範例,以及對應的格式化數字呈現方式:
數字 | 模式 | 格式化值 |
---|---|---|
12345.125 | ####.# | 12345.1 |
12.34 | 000.0000 | 012.3400 |
12 | #.0# | 12.0 |
5.125 | # ???/??? | 5 1/8 |
12000 | #,### | 12,000 |
1230000 | 0.0,,"M" | 120 萬 |
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 | HIGH LOW 0527 |