Python Openpyxl:使用不同格式写入单元格

Python Openpyxl:使用不同格式写入单元格,python,openpyxl,Python,Openpyxl,我正在写一份excel表格。我想用相同的脚本编写标题(列名称)和数据(带两个十进制数字的浮点数) 为此,我使用以下代码: # Write the header for i in xrange(len(header)): sheet.cell(row=1,column=i+1).value = header[i] # Write the data for i in xrange(len(data)): sheet.cell(row=

我正在写一份excel表格。我想用相同的脚本编写标题(列名称)和数据(带两个十进制数字的浮点数)

为此,我使用以下代码:

    # Write the header
    for i in xrange(len(header)):
        sheet.cell(row=1,column=i+1).value = header[i]

    # Write the data
    for i in xrange(len(data)):
        sheet.cell(row=2,column=i+1).style.number_format.format_code = '0.00E+00' 
        sheet.cell(row=2,column=i+1).value = float(data[i])

    book.save(os.path.join(folder,'excelReport.xlsx'))
这给了我一个例外:

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

我不能100%确定我在这里做错了什么。

只需设置单元格的数字格式:

sheet.cell(行=2,列=i+1)。数字格式='0.00E+00'

您也可以避免对循环使用
xrange
<代码>枚举(序列,开始)在您确实需要处理单个单元格时效果更好。但是,如果您只是处理序列,您可以简单地附加它们。您的代码可能会被重构成如下样子

写标题
尝试打印
sheet.cell(行=2,列=i+1).style.number\u格式
是字符串吗?我不熟悉
Openpyxl
,但您正在尝试设置一个对象
format\u code
,该对象不存在,因为您以前的对象是字符串。我会尝试,但据我所知,
sheet.cell(row=2,column=i+1)
什么都不是……我的意思是,它只是一个等待内容的空单元格,因为之前我是通过
sheet=book.create\u sheet()
sheet.append(header)

# Write the data
for row in data:
    sheet.append([float(v) for v in row])
for cell in sheet.iter_rows(row=2):
    cell.number_format = '0.00E+00'