Просто быстрый вопрос, как добавить знак процента к числам без изменения числа. Я пробовал форматировать проценты с помощью myStyleFont.num_format_str = '0,00%', но он умножается на 100, но мне нужно просто добавить проценты.

Ты заранее.

С уважением.

2
Whit3H0rse 6 Июн 2010 в 23:53

3 ответа

Лучший ответ

Обратите внимание: «изменение» и «умножение на 100» влияют на отображаемый результат, они не влияют ни на значение, сохраненное в файле, ни на значение, используемое в вычислениях по формуле.

Техника превращения оператора в литерал называется «экранированием».

Экранирующий символ в строках числового формата Excel является обратной косой чертой.

Чтобы сделать то, что вы хотите, ваш формат должен быть r"0.00\%" или "0.00\\%"

Выше приведено свойство Excel, не ограниченное Python или xlwt и т. Д. Это можно проверить с помощью одного из пользовательских интерфейсов (Excel, OpenOffice Calc, Gnumeric).

Обратите внимание, что если у вас нет ограниченного круга пользователей, которые будут читать и понимать документацию, которую вы будете писать [маловероятно * 3], вы не должны этого делать; это будет довольно странно - обычный пользователь Excel, увидев 5.00%, предполагает, что основным номером является 0.05. Чтобы увидеть это, в Excel и т. Д. Введите их в A1, A2, A3: 5%, затем .05, затем =A1=A2 ... вы увидите TRUE в A3.

pyExcelerator - это заброшенное ПО; почему ты упоминаешь это ???

О myStyleFont.num_format_str = '0.00%' (1) «шрифт» и «num_format_str» являются довольно независимыми компонентами стиля aka XF; имя вашей переменной "myStyleFont" сбито с толку. (2) Настройка XF путем вставки атрибутов в объекты - старая задача в xlwt; используйте easyxf вместо этого.

4
John Machin 6 Июн 2010 в 23:02

Числовой формат 00.0% предполагает проценты, поэтому умножение на 100 для его отображения является правильным поведением. Чтобы получить желаемые результаты, вы можете либо поместить данные в ячейку в виде строки в любом формате, который вы выберете, либо разделить их на 100,0, прежде чем сохранить значение в ячейке.

0
Corey Porter 6 Июн 2010 в 19:58

Просто для пояснения, вот пример форматирования числа в процентах в 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%».

7
LaurieW 30 Май 2012 в 09:30