
上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。