当前位置:   article > 正文

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

openpyxl worksheet

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

1. Openpyxl Installation

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

pip install openpyxl
  • 1

2. Create a workbook(工作薄)

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

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

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操作完成后保存的方法,在这里是为了方便看结果
  • 1
  • 2
  • 3

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

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

在这里插入图片描述
对不同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(要在倒数第一个位置插入直接采用默认方法)
  • 1
  • 2
  • 3
  • 4
  • 5

在这里插入图片描述
我们来思考这个插入过程:
第一步,创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']
  • 1
  • 2

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

ws = wb.active
  • 1

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']
  • 1
  • 2
  • 3
  • 4
  • 5

④ 循环遍历worksheet

# `for sheet in Workbook`循环遍历worksheet,打印每次工作表的名称
for sheet in wb:
    print(sheet.title)
'''
newSheet
Sheet
Mysheet3
Mysheet1
'''
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

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']
  • 1
  • 2
  • 3
  • 4
  • 5
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/从前慢现在也慢/article/detail/596845
推荐阅读
  

闽ICP备14008679号