在 Excel 中创建和重命名工作表的方法(ws.title 与 wb.create_sheet)

Posted

技术标签:

【中文标题】在 Excel 中创建和重命名工作表的方法(ws.title 与 wb.create_sheet)【英文标题】:Ways to create and rename sheet in excel (ws.title vs wb.create_sheet) 【发布时间】:2021-03-10 13:35:01 【问题描述】:

我正在学习 openpyxl,并有以下代码来创建 Excel 工作簿。

为了重命名工作表,我有以下代码:

import openpyxl as xl 

wb = xl.Workbook()
ws = wb.active **---- Not sure if this is necessary?**

# Renaming sheets
ws0 = wb.create_sheet('Sheet1', 0)
ws1 = wb.create_sheet('Sheet2', 1)
ws2 = wb.create_sheet('Sheet3', 2)

# To save workbook to a folder, you need to:
# Specify file path
# Add .xlsx so that it will be saved as Excel (openpyxl only supports .xlsx format)

wb.save('filepath/Workbook1.xlsx')

然而,这将返回 4 张而不是 3 张。但是当我尝试以下操作时,我得到 3 张。

# Renaming sheets 
ws.title = "Sheet1"
# ws0 = wb.create_sheet('Sheet1', 0)
ws1 = wb.create_sheet('Sheet2', 1)
ws2 = wb.create_sheet('Sheet3', 2)

有人可以建议是否默认ws.title = "Sheet1" 来命名任何 Excel 工作簿的第一张工作表?还有ws = wb.active的目的,在我输入命令重命名工作表之前,是否需要在Excel中调用活动工作表?

非常感谢!

【问题讨论】:

【参考方案1】:

您可以随意命名任何工作表。 “工作表”只是我们使用的 Excel 中的默认英文。 Openpyxl 有一些逻辑来检查重复项并附加一个计数器。因此,例如,如果您将第一个工作表的标题设置为“Feuille”(默认为法语),然后创建一个名为“Feuille”的新工作表,新工作表将自动将其重命名为“Feuille1”。

ws = wb.active 只是方便。对于在 Excel 中创建的文件,它始终会为您提供保存文件时焦点所在的工作表。但是,当您刚刚创建一个新工作簿时,它也很有用,这样您就不必输入ws = wb["Sheet"]

【讨论】:

您好,非常感谢您的详细解释!假设我想重命名 Excel 工作簿默认创建的第一个工作表 - 我是否总是使用以下命令? ws.title = "insert_sheet_name" 没错,就是这么简单。

以上是关于在 Excel 中创建和重命名工作表的方法(ws.title 与 wb.create_sheet)的主要内容,如果未能解决你的问题,请参考以下文章

在 C# 中创建和使用 Excel 文件 - Unity

Excel VBA从两个日期在表格中创建和添加多行

如何在 Mime php 中创建和附加带有电子邮件的 excel 文件

在 JAX-WS 中重命名参数名称

如何在 VueJS 中创建和扩展抽象类组件?

Excel VBA - 组合宏以重命名工作表和宏以在一个宏中合并工作表