Python辅助Word+Excel:让办公更高效
上QQ阅读APP看书,第一时间看更新

025 使用集合方法拼接两个工作表

此案例主要通过使用Python语言的集合的union()方法合并两个集合的成员,从而实现在工作簿中拼接两个工作表。当运行此案例的Python代码(A346.py文件)之后,将根据“订单表.xlsx”文件的已出库订单表和未出库订单表拼接全部订单表,已出库订单表如图025-1所示,未出库订单表如图025-2所示,拼接的全部订单表如图025-3所示。

图025-1

图025-2

图025-3

A346.py文件的Python代码如下:

import openpyxl
myBook=openpyxl.load_workbook('订单表.xlsx',data_only=True)
mySheet1=myBook['已出库订单表']
mySheet2=myBook['未出库订单表']
#将已出库订单表复制成全部订单表
mySheet3=myBook.copy_worksheet(mySheet1)
mySheet3.title='全部订单表'
#删除全部订单表的行(第1行除外)
while mySheet3.max_row >1:
      mySheet3.delete_rows(2)
#根据已出库订单表的行创建集合(mySet1)
mySet1=set(list(mySheet1.values)[1:])
#根据未出库订单表的行创建集合(mySet2)
mySet2=set(list(mySheet2.values)[1:])
#将mySet1和mySet2拼接成mySet3,即生成全部订单表
mySet3=mySet1.union(mySet2)
for myRow in mySet3:
    mySheet3.append(myRow)
myBook.save('结果表-订单表.xlsx')

在上面这段代码中,mySet3=mySet1.union(mySet2)表示将mySet1集合和mySet2集合拼接成mySet3集合。注意:mySet3集合成员的排列顺序可能与它们在mySet1集合和mySet2集合中的排列顺序不一致,并且可能每次在拼接之后的排列顺序都不一致,因为集合的成员与排列顺序无关。

此案例的源文件是MyCode\A346\A346.py。