最近我花了一些时间来解决这个问题。如果您遇到同样的问题,这可能会有所帮助,您将获得如何解决问题的线索。
我有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:
答案 0 :(得分:7)
您所需要的只是:
这是最终状态:
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"