Python openpyxl 如何设置活动或选定的单元格

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

在带有 openpyxl 的 Python 中,我想在用户打开电子表格时更改活动单元格。

这会产生“A1”:

 print("Active Cell: " + WorkSheetOne.sheet_view.selection[0].activeCell)

打开文件时会产生错误(文件损坏):

 WorkSheetOne.sheet_view.selection[0].activeCell = 'A4'

如何将活动/选定的单元格设置为 A1 以外的其他内容?

python python-3.x openpyxl
5个回答
8
投票

对于 openpyxls 版本 2.3.2 我让它工作:

 WorkSheetOne.sheet_view.selection[0].activeCell = 'A4'
 WorkSheetOne.sheet_view.selection[0].sqref = 'A4'

希望这对某人有帮助。


3
投票

根据接受的答案和 BryanSJT 的答案,我创建了这个循环,它将所有选择正确设置为 A1

for selection in ws.views.sheetView[0].selection:
        selection.activeCell = "A1"
        selection.sqref = "A1"

2
投票

如果您有 openpyxl 版本 2.5.4 或更高版本,请尝试在下面键入以设置活动单元格

ws.cell(row=4, column=1)
wb.save("spreadsheet.xlsx")

假设 ws 是您使用的工作表,并且您想要将单元格 A4 设置为活动状态。确保将电子表格保存在代码中。


1
投票

我正在使用 openpyxl 版本 3.0.7,发现对于我拥有的 Excel 文件,有必要对选择进行相同的定义[1]。

worksheet.views.sheetView[0].selection[0].activeCell = 'A1'
worksheet.views.sheetView[0].selection[0].sqref = 'A1'

worksheet.views.sheetView[0].selection[1].activeCell = 'A1'
worksheet.views.sheetView[0].selection[1].sqref = 'A1'

data_sheet.sheet_view.selection[0].activeCell = 'A1'
data_sheet.sheet_view.selection[0].sqref = 'A1'

data_sheet.sheet_view.selection[1].activeCell = 'A1'
data_sheet.sheet_view.selection[1].sqref = 'A1'

我希望这对某人有帮助。


0
投票

使用 openpyxl 3.0.10 和 XLSX 文件,我发现在

sqref
上设置
selection[0]
就足够了:

wb.active = wb["Sheet 1"]
wb["Sheet 1"].views.sheetView[0].selection[0].sqref = "A1"
wb["Sheet 2"].views.sheetView[0].selection[0].sqref = "B2"
wb["Sheet 3"].views.sheetView[0].selection[0].sqref = "C3"

设置

activeCell
好像没有效果。

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