在Python中添加百分比 - xlwt / pyexcelerator
我有个简单的问题,怎么在数字后面加上百分号,但不改变数字本身。我试过用格式化百分比的方法,像这样 myStyleFont.num_format_str = '0.00%',但这样会把数字乘以100。我只是想在数字后面加个百分号。
提前谢谢你。
祝好。
4 个回答
这个 00.0%
的数字格式是用来表示百分比的,所以为了显示它,乘以100是正确的做法。要得到你想要的结果,你可以选择把数据以字符串的形式放在单元格里,格式随你喜欢;或者在把数值存入单元格之前,先把它除以100.0。
为了让大家更明白,这里有一个例子,演示如何在xlwt中把数字格式化为百分比:
from xlwt import easyxf, Workbook
wb = Workbook()
ws = wb.add_sheet('Formatting Sheet')
style_percent = easyxf(num_format_str='0.00%')
ws.write(0, 5, 0.12, style_percent)
这样在Excel单元格中会显示为'12.00%'。
请注意:“修改”和“乘以100”只影响显示的结果,并不会改变文件中存储的值,也不会影响公式计算时使用的值。
让一个操作符被当作字面量处理的技巧叫做“转义”。
在Excel的数字格式字符串中,转义字符是反斜杠(\)。
为了实现你想要的效果,你的格式应该是 r"0.00\%"
或者 "0.00\\%"
。
以上内容是Excel的特性,并不局限于Python或 xlwt
等工具。你可以通过使用Excel、OpenOffice Calc、Gnumeric等界面来测试。
要注意的是,除非你有一小部分用户会阅读并理解你写的文档(这不太可能),否则你不应该这样做;这样会让人感到困惑——普通的Excel用户看到 5.00%
会认为底层的数字是 0.05
。你可以在Excel中输入这些值到A1、A2、A3: 5%
然后 .05
然后 =A1=A2
... 你会在A3看到 TRUE
。
pyExcelerator
是个被遗弃的软件;你为什么还提到它???
关于 myStyleFont.num_format_str = '0.00%'
(1) “font”和“num_format_str”是样式(也叫XF)的两个独立部分;你的变量名“myStyleFont”让人感到困惑。 (2) 在 xlwt
中,通过直接设置对象的属性来创建XF是老办法了;建议使用 easyxf
。