openpyxl 如何切换默认工作表

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

我的xlsx文件有5张, 我可以更改第四张纸的内容, 改变后, 我保存到一个新文件。

但是当我打开新文件时, 我需要手动选择第四张纸。

如何将默认工作表更改为第四张工作表?

谢谢!


更新

工作了! 非常感谢。 但还有一个小问题,

first and fourth sheet both select

我想要这个only fourth sheet select

xlsx openpyxl
3个回答
13
投票

只需将

wb.active
设置为工作表的索引,例如。
wb.active = 3
第四张。


10
投票

在仅设置 wb.activemultiple sheets selected 并保存后手动打开文件时,我遇到了与 Kobe 相同的问题

对我来说,解决方法是除了设置活动工作表之外,还显式设置工作簿中每个工作表的

tabSelected
属性。这是一个最小的例子:

import openpyxl

workbook = openpyxl.load_workbook('your_file.xlsx')

workbook.active = 2 # making the third sheet active

for sheet in workbook:
    if sheet.title == 'your_sheet_name':
        sheet.sheet_view.tabSelected = True
    else:
        sheet.sheet_view.tabSelected = False

workbook.save('your_file.xlsx')

手动打开文件后,仅选择一张纸。


0
投票

我正在使用一个使用 openpyxl 填充的模板。问题是

wb.active = wb["Deckblatt"]
导致我保存模板的工作表周围出现伪影(此处为“Pro FW Δ”)(openpyxl 3.0.10):

因此我创建了一个辅助函数,可以设置没有工件的活动工作表:

def make_sheet_active(wb: openpyxl.workbook.workbook.Workbook, main_sheet_name: str):
    wb.active = wb[main_sheet_name]
    for ws in wb:
        ws.views.sheetView[0].tabSelected = ws.title == main_sheet_name
© www.soinside.com 2019 - 2024. All rights reserved.