我正在写一张excel表。我想用相同的脚本编写标题(带有列的名称)和数据(带有2位小数的浮点数)。
要做到这一点,我正在使用这段代码:
# 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%肯定我在这里做错了什么。
答案 0 :(得分:2)
只需设置单元格的数字格式:
sheet.cell(row=2,column=i+1).number_format = '0.00E+00'
您也可以避免使用xrange
进行循环。当你真的需要处理单个细胞时,enumerate(sequence, start)
会更好。但是,如果您只是使用序列,您可以简单地附加它们。您的代码可能会被重构为类似以下内容。
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'