likes
comments
collection
share

Python 使用xlwings库操作excel的简明实践分享之表格操作

作者站长头像
站长
· 阅读数 2

增加表格

简易的增加

ws = wb.sheets.add() ws = wb.sheets.add() ws = wb.sheets.add()

add函数中不增加任何参数,则默认是在当前活动表的前面增加一张表,加上原有的一张表,则文件中会是这样的顺序

Python 使用xlwings库操作excel的简明实践分享之表格操作

指定位置增加

其中还可以增加after和before的参数,来指定新表的位置

Python 使用xlwings库操作excel的简明实践分享之表格操作  

指定的表必须要存在。

前序文章提及过创建表时会把创建的表设为活动表,所以不带位置参数创建的新表会加到活动表的前面,而并非是永远在最前面的。


当提供名称参数时,创建的表就带有这个名称。

Python 使用xlwings库操作excel的简明实践分享之表格操作

 

设活动表

使用表格的activate方法使自身成为这个工作簿的活动表

wb1 = app.books.add()

ws1 = wb1.sheets.add() ws2 = wb1.sheets.add() ws3 = wb1.sheets.add() ws4 = wb1.sheets.add() ws5 = wb1.sheets.add()

ws3.activate()

  Python 使用xlwings库操作excel的简明实践分享之表格操作  

删除表

使用表的delete函数来删除自身

ws5.delete()

可以看到表被删除了,活动表又回到了上一个活动的表上。

  Python 使用xlwings库操作excel的简明实践分享之表格操作

 

获取所有表名

wb.sheets代表这个工作簿里所有的表格对象,sheet.name 代表一张表的表名,可以使用列表生成式来提取表的名称列表。

 

name_list = [sheet.name for sheet in wb.sheets]

也可以通过工作簿的的sheet_names属性获得

print(wb2.sheet_names)

 

 

这会是按照表里面的顺序获得的

Python 使用xlwings库操作excel的简明实践分享之表格操作


通过表名和索引获取表

通过表名取得表就相当于字典取得键的值一样

Python 使用xlwings库操作excel的简明实践分享之表格操作

通过索引取得表就相当于列表取得值一样

 

Python 使用xlwings库操作excel的简明实践分享之表格操作  

表格的复制

同工作簿拷贝表格

wb1 = app.books.add()

ws1 = wb1.sheets.active ws1.copy()

不具名拷贝会出现一个带数字的重命名表格,和人工拖拽是一样的。会出现在所有表格后面

Python 使用xlwings库操作excel的简明实践分享之表格操作

带上名称拷贝可以在拷贝后重命名,这个名字也不能重复,不会再帮你重命名了。

ws1.copy(name= '1234' )

 

Python 使用xlwings库操作excel的简明实践分享之表格操作 

 

从这个工作簿拷贝表格到其他工作簿里

 

 

工作表列表sheets可以通过查看源码,发现其实现了迭代器__iter__,也可以通过索引获取表格,但本身并不是个列表,单纯通过列表append是不行的。还是得看copy方法。其可以带after和before两种参数,参数类型是表格对象,根据表格对象自己所在的工作簿确定这个被复制的表要去哪里。

wb1 = app.books.add()

ws1 = wb1.sheets.active cell_A1 = ws1.range( 'A1' ) cell_A1.value = [212, 232, 2332]

wb2 = app.books.add() ws1.copy(name= '1234' , after=wb2.sheets.active)

  可以看到工作簿1的表格被拷贝到了工作簿2,并重命名为1234

转载自:https://juejin.cn/post/7223775785206824997
评论
请登录