【openpyxl】记录01 - Workbook、Worksheet的创建与相关操作

本系列为阅读openpyxl官方文档的心得记录,官方文档链接置于此处,欢迎大家共同学习
官方文档链接:https://openpyxl.readthedocs.io/en/stable/

1. Openpyxl Installation

使用 pip 安装 openpyxl。建议在没有系统包的 Python 虚拟环境中执行此操作:

pip install openpyxl

2. Create a workbook(工作薄)

只需要导入openpyxl的Workbook类即可开始工作

from openpyxl import Workbook # 导入Workbook类
wb = Workbook() # 创建一个工作薄对象wb

3. Create a worksheet(工作表)

采用wb.create_sheet(sheet_name, index)创建工作表,两个参数的解释如下:

  • sheet_name:即当前创建sheet的名称(若省略sheet_name,则工作表在创建时会自动为其命名。它们将按顺序编号(Sheet、Sheet1、Sheet2等))
  • index:即当前sheet插入的位置(省略不写为默认情况,插入到最后一个位置;0为插入到第一个位置;-1为插入到倒数第二个)
    以上两个参数可根据实际情况省略。

对省略sheet name的情况进行测试:
① 仅创建了workbook,没有创建worksheet:我们可以看到,保存的excel默认创建了一个sheet

from openpyxl import Workbook # 导入Workbook类
wb = Workbook() # 创建一个工作薄对象wb
wb.save('test.xlsx') # 这是对workbook操作完成后保存的方法,在这里是为了方便看结果

在这里插入图片描述
②创建了一个未命名的worksheet:按照上边的讲解,它会在表尾插入(index省略,默认插到最后一个位置),并按顺序编号(因为workbook创建时默认已经有了一个工作表Sheet,所以最新插入的这个命名为Sheet1,如果继续插入也是同理)

from openpyxl import Workbook # 导入Workbook类
wb = Workbook() # 创建一个工作薄对象wb
ws = wb.create_sheet()
wb.save('test.xlsx') # 这是对workbook操作完成后保存的方法,在这里是为了方便看结果

在这里插入图片描述
对不同index的测试:

ws1 = wb.create_sheet("Mysheet1") # 默认在工作薄的 最后位置 插入名为‘MySheet’的sheet (default)
# or
ws2 = wb.create_sheet("Mysheet2", 0) # 在 索引0 的位置插入名为‘MySheet’的sheet
# or
ws3 = wb.create_sheet("Mysheet3", -1) # 在 倒数第二个 位置插入名为‘MySheet’的sheet(要在倒数第一个位置插入直接采用默认方法)

在这里插入图片描述
我们来思考这个插入过程:
第一步,创workbook时默认创建了Sheet,序列为[Sheet]
第二步,在最后插入了MySheet1,序列为[Sheet,MySheet1]
第三步,在索引0插入了MySheet2,序列为[MySheet2,Sheet,MySheet1]
第四步,在索引-1,即倒数第二个位置擦汗如了MySheet3,序列为[MySheet2,Sheet,MySheet3,MySheet1]

4. 关于worksheet的一些操作

Workbook.sheetnames查看workbook内所有worksheet的sheetname,返回一个列表

print(wb.sheetnames)
# ['Mysheet2', 'Sheet', 'Mysheet3', 'Mysheet1']

Workbook.active可以获取workbook的第一个sheet

ws = wb.active

Worksheet.title可以查看并修改当前worksheet的sheet name

# 查看当前worksheet的sheet name
print(ws.title) # Mysheet2
# 修改当前worksheet的sheet name
ws.title = 'newSheet'
print(wb.sheetnames) # ['newSheet', 'Sheet', 'Mysheet3', 'Mysheet1']

④ 循环遍历worksheet

# `for sheet in Workbook`循环遍历worksheet,打印每次工作表的名称
for sheet in wb:
    print(sheet.title)
'''
newSheet
Sheet
Mysheet3
Mysheet1
'''

Workbook.copy_worksheet()在同一个workbook下直接创建其中一个worksheet的副本,并添加到workbook的表尾

print(ws.title) # newSheet
ws2 = wb.copy_worksheet(ws) # 为newSheet创建一个副本,添加到wb
# 验证
print(ws2.title) # newSheet Copy
print(wb.sheetnames) # ['newSheet', 'Sheet', 'Mysheet3', 'Mysheet1', 'newSheet Copy']
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值