透過日期/時間和數字格式,您可以控制資料在工作表中的顯示方式。Google 試算表提供了一些常見格式供您選擇,但您也可以自行定義格式。
在試算表 UI 中,您可以使用「格式」 >「數字」選單,將數字和日期格式套用至儲存格。在 Google 試算表 API 中,您可以使用 spreadsheets.batchUpdate
方法呼叫來設定這些格式,以便傳送 UpdateCellsRequest
或 RepeatCellRequest
。
本頁面說明如何定義新的日期和數字格式模式,並納入 API 要求。範例「為範圍設定自訂日期時間或小數格式」說明如何使用 API 設定格式模式。請注意,實際的格式算繪作業取決於試算表的 locale
。本指南假設 locale
為 en_US
。您可以使用 spreadsheets.get
要求,讀取 SpreadsheetProperties
,藉此判斷試算表的 locale
。
關於日期和時間值
與大多數試算表應用程式一樣,Sheets 會將日期和時間值視為十進制值。這樣一來,您就能在公式中對這些值執行算術運算,藉此增加天數或星期、加減兩個日期和時間,以及執行其他類似作業。
試算表採用的紀元日期格式,是試算表中常用的格式。值的整數部分 (小數點左側) 會從 1899 年 12 月 30 日算起,計算天數。小數部分 (小數點右側) 會將時間計為一天的一部分。舉例來說,1900 年 1 月 1 日中午的時間是 2.5
,2
是因為它是 1899 年 12 月 30 日後的 2 天,0.5
是因為中午是半天。1900 年 2 月 1 日下午 3 點是 33.625
。
Sheets 會正確將 1900 年視為平年,而非閏年。
日期和時間格式模式
日期時間格式模式是符號子字串的字串,在剖析時會替換為對應的日期時間元素 (例如月份或小時)。
日期和時間格式符記
下表定義了可用於日期/時間格式模式的符記子字串。+
字元表示前一個字元可出現一或多次,仍可與模式相符。下表未列出的字元會視為常值,並以原樣輸出。
權杖 | 說明 |
---|---|
h |
時段。根據字串中是否有上午或下午指標,切換 12 小時制和 24 小時制。 |
hh+ |
與前述相同,但 1-9 會加上開頭 0。 |
m |
如果前一個非字面值符記是小時,或後一個符記是秒,則代表小時中的分鐘 (不含開頭的 0)。否則,它會以數字表示年份中的月份 (不含前置零)。 |
M |
月份,不含前置 0。使用這個符記,在模式中明確指出月份,而非分鐘。 |
mm |
與 m 相同,但兩種情況都會在開頭加上 0。 |
MM |
以 0 開頭的月份。使用這個符記,在模式中明確指出月份,而非分鐘。 |
mmm |
三個字母的月份縮寫 (例如「Feb」)。 |
mmmm |
完整的月份名稱。mmmmmm+ 也符合這個情況。 |
mmmmm |
月份的首字母 (例如 6 月的「J」)。 |
s |
一分鐘內的秒數,前方不加 0。 |
ss |
一分鐘內的第幾秒,前方加 0。 |
[h+] |
一段時間內經過的實際小時數。字母數量代表數字數下限 (會加上開頭的 0)。 |
[m+] |
一段時間內經過的分鐘數。字母數量代表數字數下限 (會加上開頭的 0)。 |
[s+] |
時間長度內經過的秒數。字母數量代表數字數下限 (會加上開頭的 0)。 |
d |
每月日期,數字前不加上零 (0),小於 10 的數字除外。 |
dd |
每月日期,數字前方加 0,如果數字小於 10,則會加上 0。 |
ddd |
星期幾,三個字母縮寫 (例如「Mon」)。 |
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." |
下午 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,系統就不會算繪分數部分。使用數字格式 0 #/3 的 23.1 會顯示為 23 (因為 0.1 會四捨五入為 0/3)。/ 與科學格式或含有小數點的格式不相容。 |
* |
這項功能是為了與 Microsoft Excel 數字格式相容。目前會遭到忽略。 |
_ |
底線符號會略過下一個字元,並顯示空格。這可用於將負值括在括號內的數字格式對齊。 |
\ |
將下一個字元視為常值,而非可能具有的任何特殊意義。舉例來說,數字格式 \#0 會將 10 顯示為「#10 」。 |
"text" |
會將引號內的文字顯示為文字常值。 |
@ |
如果儲存格有文字輸入,則會為儲存格插入原始文字。不相容於任何其他特殊字元,且不會顯示數值 (會以一般格式顯示)。 |
$ - + ( ) : space |
Sheets 會將這些字元視為文字常值,並以原樣顯示。 |
中繼指示
此外,每個格式區段都可以有選用的中繼指示,這些指示會以 []
字元包圍,並在格式之前提供額外指示。元指令類型有兩種,且指定的區段可同時使用這兩種:
操作說明 | 說明 |
---|---|
[condition] |
將該區段的預設正、負或零比較值,替換為其他條件式運算式。舉例來說,[<100]”Low”;[>1000]”High”;000 會將值低於 100 的值顯示為「Low」,值高於 1000 的值顯示為「High」,而介於兩者之間的值則會顯示為三位數 (開頭為 0)。條件只能套用至前兩個子格式,如果某個數字與多個子格式相符,系統會使用相符的第一個子格式。如果有第三種格式,則會用於「其他所有」格式;否則,如果數字不符合任何格式,則會以所有「#」填滿儲存格寬度的方式顯示。如果存在,系統一律會使用第四種格式顯示文字。 |
[Color] or [Color#] |
讓這個子格式算繪的任何值以指定的文字顏色顯示。Color 的有效值為黑色、藍色、青色、綠色、洋紅色、紅色、白色或黃色。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 |
較多 較少 0527 |