【发布时间】:2021-10-14 18:54:44
【问题描述】:
openpyxl 3.0.7 版,python 3.8.8 版
我正在尝试将单元格格式设置为小时:分钟。通过阅读 openpyxl 文档的重新格式化数字: https://openpyxl.readthedocs.io/en/stable/_modules/openpyxl/styles/numbers.html
FORMAT_DATE_TIME3 应该做我需要的。它使用 BUILTIN_FORMATS(20),即 'h:mm'。但是,我的代码实现在电子表格上没有预期的结果。这些值按预期出现,但不是格式。 我希望将单元格格式化为 h:mm,所以当我添加 1:02 和 1:58 时,我得到 3:00(3 小时)。我尝试了 2 种不同的方法来格式化单元格(meth 1 和 meth 2),并使用 meth 1 列的求和公式,但我并不完全在那里。
任何帮助将不胜感激,谢谢。
from openpyxl import Workbook
from openpyxl import load_workbook
from openpyxl.styles import numbers
wb = Workbook()
ws = wb.active
ws['A3'] = "Meth 1"
ws['A4'] = "1:02"
ws['A5'] = "1:58"
ws['A4'].number_format = numbers.FORMAT_DATE_TIME3
ws['A5'].number_format = numbers.FORMAT_DATE_TIME3
print('A4 number format = ', ws['A4'].number_format)
print('A5 number format = ', ws['A5'].number_format)
cell = ws.cell(row=7, column=1, value='= SUM(A{}:A{})'.format(4, 5))
cell.number_format = numbers.FORMAT_DATE_TIME3
ws['C3'] = "Meth 2"
cell = ws.cell(row=4, column=3, value="1:02".format(numbers.FORMAT_DATE_TIME3))
cell.number_format = numbers.FORMAT_DATE_TIME3
cell = ws.cell(row=5, column=3, value="1:58")
cell.number_format = numbers.FORMAT_DATE_TIME3
wb.save(filename = 'hours_mins.xlsx')
我已经打印了数字格式以验证它是所需的格式
A4 number format = h:mm
A5 number format = h:mm
【问题讨论】:
标签: excel openpyxl time-format