簡體   English   中英

Openpyxl:以不同格式寫入單元格

[英]Openpyxl: write cells with different format

我正在寫一張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%。

只需設置單元格的數字格式:

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'

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM