在带有 openpyxl 的 Python 中,我想在用户打开电子表格时更改活动单元格。
这会产生“A1”:
print("Active Cell: " + WorkSheetOne.sheet_view.selection[0].activeCell)
打开文件时会产生错误(文件损坏):
WorkSheetOne.sheet_view.selection[0].activeCell = 'A4'
如何将活动/选定的单元格设置为 A1 以外的其他内容?
对于 openpyxls 版本 2.3.2 我让它工作:
WorkSheetOne.sheet_view.selection[0].activeCell = 'A4'
WorkSheetOne.sheet_view.selection[0].sqref = 'A4'
希望这对某人有帮助。
根据接受的答案和 BryanSJT 的答案,我创建了这个循环,它将所有选择正确设置为 A1
for selection in ws.views.sheetView[0].selection:
selection.activeCell = "A1"
selection.sqref = "A1"
如果您有 openpyxl 版本 2.5.4 或更高版本,请尝试在下面键入以设置活动单元格
ws.cell(row=4, column=1)
wb.save("spreadsheet.xlsx")
假设 ws 是您使用的工作表,并且您想要将单元格 A4 设置为活动状态。确保将电子表格保存在代码中。
我正在使用 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'
我希望这对某人有帮助。
使用 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
好像没有效果。