【发布时间】:2019-01-24 01:48:35
【问题描述】:
我一直在使用 Python 构建一个程序来简化在 Microsoft Excel 中进行的更改的项目。我正在尝试遍历工作簿以重命名所有工作表。我的问题与我所读内容的主要区别在于,我使用以下代码根据单元格中的值重命名工作表:
"""Loop through each worksheet and rename the sheet using a value from the sheet."""
for i in wb:
ws = wb.active
c = ws['A1']
ws.title = c + (i + 1)
print(sheet.title)
如果有人能澄清问题所在,我将非常感谢您的帮助。我收到以下错误报告:
Traceback (most recent call last):
File "<stdin>", line 4, in <module>
File "C:\Users\Que\AppData\Local\Programs\Python\Python37-32\lib\site-packages\openpyxl\workbook\child.py", line 93, in title
m = INVALID_TITLE_REGEX.search(value)
TypeError: expected string or bytes-like object
我正在使用 Powershell 交互模式来测试每段代码。请理解我正在尝试访问单元格中的值,并已多次尝试更改代码以反映我的目标。感谢您的洞察力和观察。
【问题讨论】:
-
不应该用c(c.value)的值代替cell本身吗?
-
你好,神圣的牧师!你在做某事!我根据您的建议更改了代码,并收到以下信息:for i in wb: ws = wb.active c = ws['A1'] ws.title = c.value print(ws.title) Marque Marque
-
你在循环看床单,为什么你总是得到活跃的?
-
你有我的名字!代码在第一张纸上迭代。我们可以讨论一下为什么程序跳过了第一张纸吗?
-
下面我的回答能解决你的问题吗?如果要更改所有工作表的名称,则不应始终获取活动工作表,而是从迭代中获得的工作表。
标签: python excel-2010