分享

Python 操作 Excel 教程(2) | 如何通过代码来自动化操作工作表?

 知识情报院 2022-02-21

Excel 的基本对象有工作簿workbook、工作表worksheet、行row、列column、单元格cell以及单元格区域range等;面向对象是软件工程中的重要思想;Python 也是面向对象的编程语言,我们把 Excel 看成一个对象的集合,最基础的对象是单元格cell,单元格不能再分,单元格有名称(行列),有属性值(内容)等;我们控制 Excel,其实也是将其作为一个对象,来改变它的属性值,达到我们想要的效果;今天我们先来学习,工作表对象worksheet的操作过程。


01 首先读取或创建 Excel 表格

使用load_workbook()函数;我们需要先导入load_workbook;工作表为活动工作表

from openpyxl import load_workbook
# Excel表格与脚本在同一个文件夹,否则需要把路径写全
wb = load_workbook(r'demo.xlsx')

如果我们没有已存在的 Excel 表格,想要新建一个,那么我们需要使用Workbook类;Workbook类相当于一个模板,我们使用Workbook()实例化化一个新的工作表给对象wb

from openpyxl import Workbook
# 实例化新的工作表
wb = Workbook()
# 给新工作簿命名为"demo2"
wb.name = "demo2"
print(wb.name)

# 输出:
# demo2

02 新建工作表并命名

一个工作簿可以有多个工作表,我们可以使用create_sheet()函数来给我们的工作簿增加新的工作表;使用工作簿的sheetnames属性来输出我们工作簿的所有工作表名称;

create_sheet(title = None,index = None);create_sheet()有两个参数,第一个是工作表名称,第二个是新建工作表的索引位置

from openpyxl import Workbook
wb = Workbook()
wb.name = "demo2"

ws1 = wb.create_sheet("Mysheet1"# 新建工作表,放在在最末尾
ws2 = wb.create_sheet("Mysheet2"0# 新建工作表,放在最开始
ws3 = wb.create_sheet("Mysheet3"-1# 新建工作表,放在倒数第2个位置

ws = wb.sheetnames
wb.save()
print(ws)

# 输出:
# ['Mysheet2', 'Sheet', 'Mysheet3', 'Mysheet1']

如果要修改工作表名字,则使用对应工作表的title属性

ws3.title = 'ws300' # 重新命名工作表"Mysheet3"

03 批量新建工作表

即使用for循环,嵌套create_sheet()函数即可

from openpyxl import Workbook

wb = Workbook()
for i in range(100):
    wb.create_sheet()
ws = wb.sheetnames

wb.save('demo2.xlsx')
print(ws)

04 批量删除工作表

如果想要删除工作表,我们就要使用到工作簿的remove_sheet()函数,remove_sheet()需要传入一个参数,即工作表对象,我们使用sheetnames获取工作表名称,然后通过数组切片[:-2],即从开始到倒数第 2 个为止,然后传入wb[i]生成对象,再传入remove_sheet()函数

from openpyxl import Workbook

wb = Workbook()
for i in range(100):
    wb.create_sheet()
ws = wb.sheetnames

for i in ws[:-2]:
    wb.remove_sheet(wb[i])
ws = wb.sheetnames

wb.save('demo2.xlsx')
print(ws)

今天的教程,主要学习了:如何读取工作簿中的工作表,以及批量新增及删除工作表,大家都学会了吗?

    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多