通过日期时间和数字格式,您可以控制数据在工作表中的显示方式。 Google 表格提供了一些常用格式供您选择,但您也可以 定义自己的格式
在表格界面中,您可以使用
格式 >数字菜单。在 Sheets API 中,您可以使用
spreadsheets.batchUpdate
方法调用来发送
UpdateCellsRequest
或
RepeatCellRequest
。
本页介绍如何定义新的日期和数字格式模式,
可包含在您的 API 请求中示例
为范围设置自定义日期时间或小数格式
介绍了如何使用 API 设置格式模式。请注意,
格式取决于电子表格的 locale
。本指南假设
locale
为 en_US
。您可以通过读取locale
SpreadsheetProperties
(具有 spreadsheets.get
)
请求。
关于日期和时间值
与大多数其他电子表格应用一样,Google 表格也会将日期和时间值视为 小数值。这样,您就可以在公式中对这些元素进行算术, 添加或减去两个日期和时间,以及执行其他 类似的操作。
Google 表格使用
纪元日期
一种常用数据格式值的整数部分
(小数点左侧)表示自 1899 年 12 月 30 日以来的天数。分数
部分(小数点右侧)表示时间在一天中所占的比例。对于
例如,1900 年 1 月 1 日中午是 2.5
,2
,因为它晚于 2 天
1899 年 12 月 30 日,而 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 |
月份的第一个字母(例如,“J”代表 6 月)。 |
s |
一分钟中的秒数,不带前导 0。 |
ss |
一分钟中的秒,以 0 开头。 |
[h+] |
一段时间内经过的小时数。字母数 表示位数的最小位数(添加前导 0)。 |
[m+] |
一段时间内经过的分钟数。字母数 表示位数的最小位数(添加前导 0)。 |
[s+] |
持续时间中经过的秒数。字母数 表示位数的最小位数(添加前导 0)。 |
d |
一个月中的某一天,小于 10 的数字不带前导 0。 |
dd |
一个月中的某一天,小于 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 下午 |
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 日星期二,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]
您无需在格式中包含全部四个部分。如果仅包含一个 部分,则该格式将用于所有值。使用两个部分会导致第一个部分 以应用于 0 和正数,将第二种格式应用于 负数。使用三个部分可分别定义积极、 负数和零。例如:
[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 ,
# 或 ? ),它会渲染整个数字,
使用分组分隔符(按千分组)。如果遵循
系统会按照每 1000 个
英文逗号(例如,#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 |
Google 表格会将这些字符视为字面量,并显示它们 未更改。 |
元指令
此外,每个格式部分都可以包含可选的元指令,
包含在 []
字符中,这些字符位于格式前面,并提供
其他说明。有两种元指令类型,一种指定的
部分可以使用:
指令 | 说明 |
---|---|
[condition] |
替换
部分替换为另一个条件表达式。例如:
[<100]”Low”;[>1000]”High”;000 会渲染单词
“低”表示值低于 100,值“高”表示值高于 1000,三位数
数字(带有前导 0)。条件只能是
会应用于前两种子格式;如果一个数字与多种格式匹配,
它会使用匹配的第一个参数。如果有第三种格式
用于“其他”,否则,如果数字与数字
格式,它便会以全部“#”填充单元格宽度的形式呈现。如果存在,则
文本始终使用第四种格式。 |
[Color] or [Color#] |
会使此子格式呈现的任何值都与 文本颜色。Color 的有效值包括 Black、 蓝色、青色、绿色、品红色、红色、白色或黄色。 “#”的有效值在 Color# 中是 0&ndash1;56( 调色板 会显示与每个数字对应的颜色列表)。数字格式 颜色会覆盖用户在单元格中输入的任何颜色, 覆盖通过条件格式设置的颜色。 |
数字格式示例
下表显示了一些示例模式及其对应的模式 格式的数字呈现:
数字 | 模式 | 统一格式的值 |
---|---|---|
12345.125 | ####.# |
12345.1 |
12.34 | 000.0000 |
012.3400 |
12 | #.0# |
12.0 |
5.125 | # ???/??? |
5 月 8 日 |
12000 | #,### |
12000 |
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]_(@_) |
1234 1234 0.0 MyText |
1005 32 527 |
[>1000]"HIGH";[Color43][<=200]"LOW";0000 |
高 低 0527 |