Openpyxl-正在设置活动工作表(page.append未按预期工作)



我尝试过从现有的帖子中实现多个解决方案,比如这个,但都没有成功:openpyxl设置活动工作表

我有一个包含n张工作表的工作簿,我想反复遍历这些工作表,并将标题信息应用到其中。据我所知,使用wb.active = i是在设置活动工作表,但当我使用page.append(header)时,我最终会将标题附加n次,仅附加到索引为0的工作表。这基本上与上面的链接相同,但解决方案似乎不起作用。

我在这里错过了什么?我想知道是否需要为page.append()指定一个索引,但这似乎不是该函数的有效参数。

代码

header = ['Time [sec]', 'Altitude [km]', 'Velocity [km/s]']
for i in range(len(wb.sheetnames)):
wb.active = i
print(wb.active)
page.append(header)
wb.save(path)

CONSOLE(验证wb.active功能是否工作,但指定的工作表没有被附加(

<Worksheet "ORB1">
<Worksheet "ORB2">
<Worksheet "ORB3">
<Worksheet "ORB4">
<Worksheet "ORB5">

这是另一个产生相同结果的版本(仅对第一张纸应用5倍标题(。

header = ['Time [sec]', 'Altitude [km]', 'Velocity [km/s]']
for i, s in enumerate(wb.sheetnames):
page.append(header)
wb.save(path)

这个是SOLVED,但我想保持q,因为这个解决方案……很奇怪。在代码的早期,我分配了page = wb.active,然后使用了page.append(header)

^的问题与设置活动工作表的格式有关。wb.active被使用使得wb.active = sheet_index,而不是wb.active(sheet_index)

由于这种奇怪的arg格式;wb.active";至";页面";破坏此功能。

TLDR:这是不起作用的。。。

page = wb.active
page.append(header)

您必须使用。。。

wb.active.append(header)

不知道为什么这个函数有如此奇怪的结构,但我怀疑我不是唯一一个有这个问题的人。

最新更新