使用Python错误将公式写入Excel

问题描述 投票:0回答:2

我尝试按照这个question使用python和openpyxl包在我的excel中添加一些公式。

这个链接是我完成任务所需要的。

但是在这段代码中:

for i, cellObj in enumerate(Sheet.columns[2], 1):
    cellObj.value = '=IF($A${0}=$B${0}, "Match", "Mismatch")'.format(i) 

我在Sheet.columns[2]上犯了一个错误,为什么?我遵循完整的代码。

我有python 2.7.13版本,如果这有助于此错误。

**** ****更新

完整代码:

import openpyxl
wb = openpyxl.load_workbook('test1.xlsx')
print wb.get_sheet_names()
Sheet = wb.worksheets[0]
for i, cellObj in enumerate(Sheet.columns[2], 1):
    cellObj.value = '=IF($A${0}=$B${0}, "Match", "Mismatch")'.format(i)

错误信息 :

for i, cellObj in enumerate(Sheet.columns[2], 1):

TypeError:'generator'对象没有属性'getitem'

python excel openpyxl
2个回答
2
投票

ws.columnsws.rows是返回发电机的属性。但openpyxl也支持slicing and indexing for rows and columns

因此,ws['C']将列出第三列中的单元格。


0
投票

对于希望复制/粘贴公式的其他Stack冒险者:

# Writing from pandas back to an existing EXCEL workbook

wb = load_workbook(filename=myfilename, read_only=False, keep_vba=True)
ws = wb['Mysheetname']

# Paste a formula Vlookup!  Look at column A, put result in column AC.

for i, cellObj in enumerate(ws['AC'], 1):
    cellObj.value = "=VLOOKUP($A${0}, 'LibrarySheet'!C:D,2,FALSE)".format(i)

一个问题,我有一个标题和公式覆盖它。任何人都知道如何从第2行开始?

© www.soinside.com 2019 - 2024. All rights reserved.