小编典典

OpenPyXL设置编号格式

python

可以请别人显示将数字格式应用于单元格的示例。例如,我需要科学的格式,格式类似于“ 2.45E + 05”,但我找不到在openpyxl中执行此操作的方法。

我尝试了几种方法,但是保存工作簿时它们都报告错误。

例如:

    import openpyxl as oxl

    wb = oxl.Workbook()
    ws = wb.create_sheet(title='testSheet')
    _cell = ws.cell('A1')
    _cell.style.number_format = '0.00E+00'

或这个(在这里,我尝试使用一些预定义的数字格式,我也看到内置文件中有工程格式,但不知道如何访问它:

    nf = oxl.style.NumberFormat.FORMAT_NUMBER_00
    _cell.style.number_format = nf

在两种情况下,我都会得到相同的错误:

C:\Python27\openpyxl\cell.pyc in is_date(self)
    408         """
    409         return (self.has_style
--> 410                 and self.style.number_format.is_date_format()
    411                 and isinstance(self._value, NUMERIC_TYPES))

AttributeError: 'str' object has no attribute 'is_date_format'

我已经看到了这个问题:在Openpyxl中设置样式, 但这无济于事,因为我不必更改任何其他格式设置。


阅读 219

收藏
2020-12-20

共1个答案

小编典典

此答案适用于openpyxl 2.0。

number_format可以直接改变。

给定的示例变为:

from openpyxl import Workbook

wb = Workbook()
ws = wb.create_sheet(title='testSheet')
_cell = ws.cell('A1')
_cell.number_format = '0.00E+00'
2020-12-20