可以请别人显示将数字格式应用于单元格的示例。例如,我需要科学的格式,格式类似于“ 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中设置样式, 但这无济于事,因为我不必更改任何其他格式设置。
此答案适用于openpyxl 2.0。
将number_format可以直接改变。
number_format
给定的示例变为:
from openpyxl import Workbook wb = Workbook() ws = wb.create_sheet(title='testSheet') _cell = ws.cell('A1') _cell.number_format = '0.00E+00'