在Python中添加百分比 - xlwt / pyexcelerator

2 投票
4 回答
6160 浏览
提问于 2025-04-15 23:38

我有个简单的问题,怎么在数字后面加上百分号,但不改变数字本身。我试过用格式化百分比的方法,像这样 myStyleFont.num_format_str = '0.00%',但这样会把数字乘以100。我只是想在数字后面加个百分号。

提前谢谢你。

祝好。

4 个回答

1

这个 00.0% 的数字格式是用来表示百分比的,所以为了显示它,乘以100是正确的做法。要得到你想要的结果,你可以选择把数据以字符串的形式放在单元格里,格式随你喜欢;或者在把数值存入单元格之前,先把它除以100.0。

8

为了让大家更明白,这里有一个例子,演示如何在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%'。

5

请注意:“修改”和“乘以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

撰写回答