请给我举一个将数字格式应用到单元格的例子。例如,我需要科学的格式,表单应该是'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'
我见过这个问题:Setting styles in Openpyxl 但它没有帮助,因为我不需要更改任何其他格式设置。
对于openpyxl版本2.6.2: 注意,float显示取决于在python shell、idle或ipython会话中的大小
但不要失望,因为当您使用MS Excel或LibreOffice Calc或Gnumeric重新打开电子表格时,“0.000E+00”格式将正确显示。请记住保存工作簿。
以下是操作方法:
这个答案适用于openpyxl 2.0。(不是previously accepted answer。)
可以直接更改
number_format
。给定的示例变成:
相关问题 更多 >
编程相关推荐