2017-01-16 185 views
0

我使用的是openpyxl来生成Excel文件。我开始用一些预定义的风格,如“MyHeading1”像这样打开现有的工作簿,然后设置一个单元格等于这种风格:在openpyxl中使用名称样式的多个数字格式

ws['D5'].style = 'MyHeading1' 

这一工程,但我正在挣扎中设置正确的数字格式。有些单元格是数字,而其他单元格是日期。我试过以下没有成功。

if isinstance(value, datetime.date): 
    cell.number_format = 'dd-mmm-yy' 
else: 
    cell.number_format = '# ##0.00' 

所以我的问题是什么是应对多种数字格式,其中单元的其他格式是一样的正确方法?

回答

1

这里有一个默认值,比如喜欢'Calibri',大小是11。你可以参考这个1来获得更多的细节信息。您无法分配cell.number_format的原因可能是您将单元格指定为一般形式,然后使用不再是日期格式的isinstance(value, datetime.date)。您可以检查ws['D5'].number_format来验证它。以下代码可能会对您有所帮助:

wb = Workbook() 
ws1 = wb.create_sheet(title="example") 
ws1['D5'].value = datetime.datetime.strptime('24052010', '%d%m%Y').date() 
if isinstance(ws1['D5'].value, datetime.date): 
    ws1['D5'].number_format = 'dd-mmm-yy' 
else: 
    ws1['D5'].number_format = '# ##0.00' 
wb.save(filename = 'test.xlsx') 
+0

问题是我使用ws ['D5']。style ='MyHeading1'设置样式后,我无法更改数字格式。每当我像上面那样更改数字格式时,它就会为所有具有该样式的单元格进行更改。 – Johan

+0

你可以附加更多的代码吗?也许我可以尝试弄明白。 – tomcy

相关问题