仅大小写更改时 OpenPyXL 中的意外工作表重命名

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

我正在 Python 中使用 OpenPyXL 来操作 Excel 工作簿。重命名工作表时我遇到了意外行为。 如果我将工作表的名称更改为仅字母大小写与以前的名称不同的名称,OpenPyXL 会在新名称后附加“1”

这是一个最小的可重复示例:

import openpyxl
# Create a new workbook
wb = openpyxl.Workbook()
# Get the default sheet
sheet = wb.active
# Rename the sheet to 'Input (Raw)'
sheet.title = 'Input (Raw)'
# Rename the sheet to 'Input (raw)'
sheet.title = 'Input (raw)'
# Print the current title of the sheet
print(sheet.title)

预期输出:

Input (raw)

实际产量:

Input (raw)1

我正在使用

Python 3.11.1
openpyxl 3.1.2

python openpyxl
1个回答
0
投票

重命名或设置工作表标题时按照代码中的文档

"""
Set a sheet title, ensuring it is valid. 
Limited to 31 characters, no special characters. 
Duplicate titles will be incremented numerically
"""

因此,如果工作表名称为“abc”,当您在标题重命名期间将其更改为“Abc”时,代码将确定已有一个名为“abc”的工作表,即使它将被重命名并增加新的工作表名字加1.

可以说这不是期望的操作,但代码就是这样编写的。

我想如果你想改变它或者自己重写代码,你需要向开发人员提出;这是“child.py”中的

avoid_duplicate_name
函数。

当然你也可以只使用中介名称。

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