Excel单元格自定义数值格式详细测试整理 及 Python用openpyxl设置Excel单元格属性——数值格式

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

主要参考资料: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.“?”:数字占位符

在小数点两边为无意义的零添加空格,以便使一列数据按小数点对齐。使用“?”占位符与使用“#”占位符的区别就是最终显示的宽度可能不同。

代码:???.???

评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值