主要参考资料:1.Excel自定义格式详解_小鸿1983的博客-优快云博客
2.Excel自定义数字格式详解(很全面、完整) - 百度文库
上次写openpyxl设置excel单元格填充格式时,由于没有深入了解,觉得网上对其他格式设置的介绍够详细了。但使用查阅中发现网上关于Excel单元格自定义数值格式的介绍虽然很多也够详细,但一来很多比较凌乱,不成系统。二来,部分介绍语焉不详。三来有的介绍有误。故特地逐一测试后重新整理说明。如有错漏之处,敬请指正!
第一部分——Excel单元格自定义数值格式详解说明
一、格式代码元素
格式代码的组成元素分类(本人按自己理解的进行分类):
1.代码分隔符:英文“;”或中文“;”。后者会被自动修改成“;”
2.文本占位符:“@”
3.数字格式占位符:数字“0”和英文符号“#”、“?”、“.”、“/”、“,”、“:”。
其中数字“0”和英文符号“#”、“?”为数字占位符,其他为格式占位符。
4.格式转化及占位符:“%”、“*”、“\”、“_”、“!”、“"”、不分大小写的字母a、b、d、e、h、m、s、y
5.特殊格式符:“[ ]”
6.普通非格式字符文本:包括汉字及中文标点符号、非0数字、非数字格式符的英文字母和符号、格式符经转化而成的普通文本字符。
二、格式代码分类
1.文本格式代码:指包含文本占位符@的格式代码。可以用于任何原始数据的显示格式设定。
2.数字格式代码:不含文本占位符@的格式代码。只能对纯数字型的单元格原始数据显示格式起作用。
三、格式代码结构
代码最多可分为四个节,中间用英文分号“;”分隔。
【注意】多节代码中,文本格式代码只能在最后一个节,否则会报错。四节代码中,第四节若为数字格式代码也会报错。
根据给出的代码结构情况,各节代码的作用示例如下:
1.只有一节的“文本格式代码”:将任何形式的数据原始内容均按该文本格式代码的格式显示。
2.只有一节的“数字格式代码”:文本数据按原始内容显示;正数和0用该代码格式显示;负数显示在该格式基础上前面加“-”号。
3.两节的“数字格式代码1;数字格式代码2”:文本数据按原始内容显示;正数和0用代码1格式显示;负数用代码2格式显示。
4.三节的“数字格式代码1;数字格式代码2;”:文本数据按原始内容显示;正数用代码1格式显示;负数用代码2格式显示;0值隐藏。
5.三节的“数字格式代码1;;数字格式代码2”:文本数据按原始内容显示;正数用代码1格式显示;负数隐藏;0值用代码2格式显示。
6.三节的“;数字格式代码1;数字格式代码2”:文本数据按原始内容显示;正数隐藏;负数用代码1格式显示;0值用代码2格式显示。
7.两节或三节代码,且最后一节为文本格式代码:文本按文本格式代码指定格式显示;数字按去掉最后一节后对应的2至6相应的规则显示。
例如:“数字格式代码;;文本格式代码”:去掉最后一节后的代码为“数字格式代码;”,对应第3种情况,此时数字格式代码2为空节,故正数和0用数字格式代码指定格式显示;负数隐藏。
8.四节代码:各节代码的作用对应顺序为“正数格式代码;负数格式代码;零格式代码;文本格式代码”,用相应的代码格式显示对应的数据类型。隐藏空节对应的数据类型。
例如:“数字格式代码;;;文本格式代码”:隐藏负数和0,按对应格式显示正数和文本。
再如:“;;;”:任何数据均隐藏。
四、各代码符号含义
1.“G/通用格式”。以常规的数字显示,相当于分类列表中的“常规”选项。
代码:G/通用格式
显示效果:10显示为“10”;10.1显示为“10.1”
2.“.”:小数点占位符。可单独使用,也可配合数字占位符使用(配合使用方法在其他格式符中介绍)。
代码:.
显示效果:123显示为“123.”;1.23显示为“1.”。
3.“#”:数字占位符。只显非0数字和有意义的零,不显示无意义的零。配合小数点使用时,实际数据小数点后数字位数如果大于小数点后“#”的数量,则按“#”的位数四舍五入。
代码:###.##
显示效果:12.1显示为“12.1”;12.1263显示为“12.13”。
4.“0”:数字占位符。如果实际数据的小数点前后的数字位数小于占位符个数,则分别在前后用0补足。如果小数位数大于占位符数量,则按占位符位数四舍五入。
代码:00000
显示效果:1234567显示为“1234567”;123显示为“00123”;123.45678显示为“00123”。
代码:00.000
显示效果:100.14显示为“100.140”;1.1显示为“01.100”。
【注意】“0”和“#”的区别:
代码:#.###
显示效果:12显示为“12.”
代码:#.000
显示效果:12显示为“12.000”
代码:#.##0或#.0##
显示效果:12显示为“12.0”
5.“?”:数字占位符
在小数点两边为无意义的零添加空格,以便使一列数据按小数点对齐。使用“?”占位符与使用“#”占位符的区别就是最终显示的宽度可能不同。
代码:???.???

本文详细介绍了Excel单元格自定义数值格式的组成元素、分类、结构、代码符号含义,以及如何在openpyxl中设置单元格数值格式。通过示例和解释,帮助读者理解如何创建复杂的数字和文本格式,包括百分比、分数、科学记数、颜色条件等。同时,展示了如何使用openpyxl预设的格式代码或自定义格式字符串来设置单元格格式。
最低0.47元/天 解锁文章
3594





