我在xlsx文件中具有标头的数据,我正在使用openpyxl填充电子表格中的列,到目前为止,除了在我运行代码时列标头被公式替换之外,到目前为止还不错:
import openpyxl
#Opening a Workbook
wb = openpyxl.load_workbook('file.xlsx')
#Working with an specific sheet.
Sheet = wb.get_sheet_by_name('Data')
#Getting the max amount of rows in a given sheet.
row_count = Sheet.max_row
#GEO_CODE home_county
for i, cellObj in enumerate(Sheet['T'], 1):
cellObj.value = '=A{0}'.format(i)
#Total_Count
for i, cellObj in enumerate(Sheet['U'], 1):
cellObj.value = '=SUMIF($A$2:$A${1}, T{0},$D$2:$D${1})'.format(i, row_count)
wb.save('file.xlsx')
如果我想在第二行而不是第一行开始复制公式,应该对我的代码进行哪些更改?
感谢您的时间!
答案 0 :(得分:1)
问题:我想从第二行而不是第一行开始复制公式
Sheet['T']
返回tuple
个对象中的Cell
个。
>>> (<Cell Data.T1>, <Cell Data.T2>, <Cell Data.T3>,...)
要从第二行开始,跳过第一个Cell
对象,请更改为:
for i, cellObj in enumerate(Sheet['T'][1:], 2):
注意:一个
tuple
是基于 0的,一个openpyxl.Worksheet
是基于 1的!
因此,您必须从索引1到末尾进行切片:[1:]
,并要使Row从第2行开始,请执行enumerate(..., 2)
。