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

时间:2015-05-05 10:39:53

标签: 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%'

看起来很好,除非你不知道' 0%'意思 在这里它看起来如何excel: enter image description here

2 个答案:

答案 0 :(得分:7)

您所需要的只是:

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

这是最终状态:

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

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

答案 1 :(得分:2)

您也可以使用CodeTabDirective

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

或使用built-in style numbers。它将输出3%

ws['A1'].style = "Percent"