日期時間和數字格式可用來控制工作表顯示資料的方式。Google 試算表提供一些常用格式讓您選擇,但您也可以定義自己的格式。
在試算表 UI 中,您可以透過「格式」 >「數字」選單為儲存格套用數字與日期格式。在 Sheets API 中,您可以使用 spreadsheets.batchUpdate
方法呼叫傳送 UpdateCellsRequest
或 RepeatCellRequest
,藉此設定這些格式。
本頁說明如何定義新的日期與數字格式模式,這些模式可包含在 API 要求中。如要瞭解如何使用 API 設定格式模式,請參閱設定範圍的自訂日期時間或小數格式範例。請注意,格式的實際算繪結果取決於試算表的 locale
。本指南假設 locale
是 en_US
。您可以透過 spreadsheets.get
要求讀取 SpreadsheetProperties
,判斷試算表的 locale
。
關於日期和時間值
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+ |
與上一個相同,但以 0 表示 1-9。 |
m |
如果先前的非常值符記為小時數,或者後續權杖為秒,則代表一小時內的分鐘數 (無前置 0)。否則,系統會以數字表示一年的月份 (無前置 0)。 |
M |
每年的月份,前面不加 0。利用這個權杖在模式中明確註明一個月 (而非一分鐘)。 |
mm |
與 m 相同,但兩者的開頭為 0。 |
MM |
一年中的月份,前方加 0。利用這個權杖在模式中明確註明一個月 (而非一分鐘)。 |
mmm |
由三個字母組成的月份縮寫 (例如「2」)。 |
mmmm |
完整月份名稱。「mmmmmm+ 」也與這個關鍵字相符。 |
mmmmm |
月份的第一個字母 (例如「J」代表 6 月)。 |
s |
一分鐘內的第幾秒,無前置 0。 |
ss |
一分鐘內的第幾秒,前方加 0。 |
[h+] |
在特定時間範圍內的經過時數。字母數代表數字數量下限 (開頭會加上 0)。 |
[m+] |
指定時間長度中的經過分鐘數。字母數代表數字數量下限 (開頭會加上 0)。 |
[s+] |
時間長度中的經過秒數。字母數代表數字數量下限 (開頭會加上 0)。 |
d |
日期,未前置 0 表示小於 10 的數字。 |
dd |
日期,前 0 位數代表小於 10 的數字。 |
ddd |
星期幾,三個字母的縮寫 (例如「Mon」)。 |
dddd+ |
星期幾,全名。 |
y |
2 位數的年份。 |
yy |
|
yyy |
4 位數年份。 |
yyyy+ |
|
a/p |
顯示上午「a」,下午則顯示「p」。此外,系統會將營業時間變更為 12 小時格式。如果符記字母為大寫,輸出的內容也會是大寫。 |
am/pm |
如上所述,但改為顯示「AM」或「PM」,且一律大寫。 |
0 |
數十秒。您可以使用 000 ,將精確度提高為兩位數,並輸入 00 或三位數 (毫秒)。 |
\ |
系統會將下一個字元視為常值,而非任何可能的特殊意義。 |
"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 |
hh:mm A/P".M." |
下午 04: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 日星期二 16: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 時轉譯「Low」(低),值超過 1000 則為「High」(高),以及三位數的數字 (開頭 0s) 表示兩者之間的任何項目。條件只能套用至前兩個子格式,如果數字與多個子格式相符,就會使用第一個相符的資料。如果還有第 3 種格式,這個格式則用於「其他所有」格式,否則如果數字與任一格式不符,就會顯示為全部「#」填滿儲存格寬度。如果存在,則一律使用第四種格式來撰寫文字。 |
[Color] or [Color#] |
讓這個子格式轉譯顯示與特定文字顏色的任何值。Color 的有效值為黑色、藍色、青色、綠色、洋紅色、紅色、白色或黃色。Color# 中「#」的有效值為 0&ndash1;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 文字: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 |
高 低 0527 |