欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 科技 > IT业 > Python办公自动化:使用openpyxl对工作表进行基本操作

Python办公自动化:使用openpyxl对工作表进行基本操作

2024/10/24 13:27:08 来源:https://blog.csdn.net/imdeity/article/details/141176938  浏览:    关键词:Python办公自动化:使用openpyxl对工作表进行基本操作

1 创建与删除工作表

在 Excel 中,工作簿包含多个工作表。openpyxl 提供了简单的接口来创建和删除工作表。

创建新的工作表

openpyxl 允许在工作簿中添加新的工作表。可以通过 Workbook.create_sheet() 方法创建一个新的工作表。

import openpyxl# 创建一个新的工作簿
workbook = openpyxl.Workbook()# 创建一个新的工作表,默认插入到最后
new_sheet = workbook.create_sheet()# 创建一个名称为 'DataSheet' 的工作表,并插入到第一位置
data_sheet = workbook.create_sheet(title='DataSheet', index=0)# 输出所有工作表的名称
print("工作簿中的工作表名称:", workbook.sheetnames)# 保存工作簿
workbook.save('workbook_with_sheets.xlsx')

代码解释

  • create_sheet():在工作簿中创建一个新的工作表。如果不指定 title 参数,默认名称为 Sheet2, Sheet3 等。
  • title='DataSheet':指定新工作表的名称。
  • index=0:指定新工作表的位置,0 表示将其插入到工作簿的第一位置。

删除工作表

删除工作表使用 Workbook.remove() 方法。我们首先获取要删除的工作表,然后调用 remove() 方法。

import openpyxl# 打开现有工作簿
workbook = openpyxl.load_workbook('workbook_with_sheets.xlsx')# 获取要删除的工作表
sheet_to_delete = workbook['Sheet']# 删除工作表
workbook.remove(sheet_to_delete)# 输出剩余的工作表名称
print("删除后的工作表名称:", workbook.sheetnames)# 保存工作簿
workbook.save('workbook_after_deletion.xlsx')

代码解释

  • workbook['Sheet']:通过名称获取要删除的工作表。
  • workbook.remove(sheet_to_delete):删除指定的工作表。

注意:在删除工作表之前,请确保其内容不再需要,因为删除操作不可逆。

2 工作表的命名与重命名

获取工作表的名称

每个工作表都有一个唯一的名称,可以通过 Worksheet.title 属性访问或修改。

import openpyxl# 创建一个新的工作簿
workbook = openpyxl.Workbook()# 获取当前活动工作表
sheet = workbook.active# 输出默认的工作表名称
print("默认工作表名称:", sheet.title)

重命名工作表

可以通过设置 Worksheet.title 属性来重命名工作表。

import openpyxl# 创建一个新的工作簿
workbook = openpyxl.Workbook()# 获取当前活动工作表
sheet = workbook.active# 重命名工作表
sheet.title = "RenamedSheet"# 输出重命名后的工作表名称
print("重命名后的工作表名称:", sheet.title)# 保存工作簿
workbook.save('workbook_with_renamed_sheet.xlsx')

代码解释

  • sheet.title:获取或设置工作表的名称。

注意:工作表的名称不能超过31个字符,且不能包含以下字符:[ ] : * ? / \

3 切换与访问工作表

在一个工作簿中,可能包含多个工作表。我们可以通过名称或索引来访问不同的工作表。

通过名称访问工作表

import openpyxl# 打开现有工作簿
workbook = openpyxl.load_workbook('workbook_with_renamed_sheet.xlsx')# 通过名称访问工作表
sheet = workbook['RenamedSheet']# 输出当前工作表的名称
print("通过名称访问的工作表:", sheet.title)

通过索引访问工作表

import openpyxl# 打开现有工作簿
workbook = openpyxl.load_workbook('workbook_with_renamed_sheet.xlsx')# 通过索引访问第一个工作表
first_sheet = workbook.worksheets[0]# 输出当前工作表的名称
print("通过索引访问的工作表:", first_sheet.title)

代码解释

  • workbook['RenamedSheet']:通过工作表名称访问特定工作表。
  • workbook.worksheets[0]:通过索引访问工作表,索引从 0 开始。

4 工作表的复制与移动

有时候我们需要复制工作表或将其移动到工作簿中的不同位置。

复制工作表

openpyxl 允许复制工作表,但复制的工作表将不会保留原工作表中的图表或图片。

import openpyxl# 打开现有工作簿
workbook = openpyxl.load_workbook('workbook_with_renamed_sheet.xlsx')# 获取要复制的工作表
source_sheet = workbook['RenamedSheet']# 复制工作表
copied_sheet = workbook.copy_worksheet(source_sheet)# 输出复制后的工作表名称
print("复制后的工作表名称:", copied_sheet.title)# 保存工作簿
workbook.save('workbook_with_copied_sheet.xlsx')

代码解释

  • workbook.copy_worksheet(source_sheet):复制指定的工作表。复制后的工作表名称通常为原名称加上数字,如 RenamedSheet Copy

移动工作表

通过修改工作表在 Workbook.worksheets 列表中的位置,可以移动工作表到指定的位置。

import openpyxl# 打开现有工作簿
workbook = openpyxl.load_workbook('workbook_with_copied_sheet.xlsx')# 获取要移动的工作表
sheet_to_move = workbook['RenamedSheet']# 将工作表移动到索引位置 
workbook.move_sheet(sheet_to_move, 2)# 输出所有工作表的顺序
print("移动后的工作表顺序:", [sheet.title for sheet in workbook.worksheets])# 保存工作簿
workbook.save('workbook_with_moved_sheet.xlsx')

代码解释

  • workbook.remove_sheet(sheet_to_move):从当前工作薄中移除工作表。
  • workbook.move_sheet(sheet_to_move, index):将工作表移动至索引位置。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com