如何在单元格的百分比中放入两位小数

Ayr*_*rat 2 python openpyxl

最近我花了一些时间来解决这个问题.如果您遇到同样的问题,这可能会有所帮助,您将获得如何解决问题的线索.

我有openpyxl版本2.2.2我需要在点之后用2位数写入百分比值到单元格中.值应在Excel中显示为"3.14%" - 百分比类型,点后两位小数这是我的第一次尝试:

from openpyxl import Workbook

wb = Workbook(guess_types=True)
ws = wb.create_sheet(index = 0, title = "MyTable")
ws['A1'].value = '3.14%'
ws['A1'].number_format

>> '0%'
Run Code Online (Sandbox Code Playgroud)

看起来很好,除非你不知道'0%'是什么意思在这里它看起来如何在excel中: 在此输入图像描述

Ayr*_*rat 8

您所需要的只是:

  • 添加数字格式
  • 不要使用guess_types参数

这是最终状态:

wb = Workbook()
ws = wb.create_sheet(index = 0, title = "MyTable")
ws['A1'].value = '3.14%'
ws['A1'].number_format = '0.00%'
Run Code Online (Sandbox Code Playgroud)

以下是其他使用格式的文档:http: //openpyxl.readthedocs.org/en/latest/styles.html


Vla*_*den 7

您还可以使用内置样式编号

wb = Workbook()
ws = wb.create_sheet(index = 0, title = "MyTable")
ws['A1'].value = '0.0314'

from openpyxl.styles.numbers import FORMAT_PERCENTAGE_00
# with two decimal places. Will output 3.14%
ws['A1'].number_format = FORMAT_PERCENTAGE_00

from openpyxl.styles.numbers import FORMAT_PERCENTAGE
# with no decimal places. Will output 3%
ws['A1'].number_format = FORMAT_PERCENTAGE
Run Code Online (Sandbox Code Playgroud)

或者使用build it styles。它将输出3%

ws['A1'].style = "Percent"
Run Code Online (Sandbox Code Playgroud)