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

007 在工作簿中复制多个工作表

此案例主要通过在for循环中使用Workbook的copy_worksheet()方法,从而实现在工作簿中根据已经存在的工作表批量复制多个内容和格式完全相同的工作表。当运行此案例的Python代码(A008.py文件)之后,将在“利润表.xlsx”文件中复制12个与利润表的内容和格式完全相同的工作表,即1月份利润表、2月份利润表、3月份利润表、4月份利润表等工作表,代码运行前后的效果分别如图007-1和图007-2所示。

图007-1

图007-2

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

import openpyxl
myBook=openpyxl.load_workbook('利润表.xlsx')
myNames=['1月份利润表','2月份利润表','3月份利润表','4月份利润表',
          '5月份利润表','6月份利润表','7月份利润表','8月份利润表',
          '9月份利润表','10月份利润表','11月份利润表','12月份利润表']
#循环列表(myNames)的表名(myName),如'1月份利润表'等
for myName in myNames:
     #在工作簿(myBook)中根据利润表(myBook.worksheets[0])复制工作表(mySheet)
     mySheet=myBook.copy_worksheet(myBook.worksheets[0])
     #重新设置复制工作表的表名
     mySheet.title=myName
myPath='结果表-利润表.xlsx'
myBook.save(myPath)

在上面这段代码中,mySheet=myBook.copy_worksheet(myBook.worksheets[0])表示在工作簿(myBook)中复制一个与利润表(myBook.worksheets[0])的内容和格式完全相同的工作表(mySheet),注意:参数myBook.worksheets[0]是工作表对象,不是工作表表名。

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