赞
踩
本系列为阅读openpyxl官方文档的心得记录,官方文档链接置于此处,欢迎大家共同学习
官方文档链接:https://openpyxl.readthedocs.io/en/stable/
使用 pip 安装 openpyxl。建议在没有系统包的 Python 虚拟环境中执行此操作:
pip install openpyxl
只需要导入openpyxl的Workbook类即可开始工作
from openpyxl import Workbook # 导入Workbook类
wb = Workbook() # 创建一个工作薄对象wb
采用wb.create_sheet(sheet_name, index)
创建工作表,两个参数的解释如下:
对省略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]
① 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']
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。