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

020 将汇总结果添加到新建的工作表

此案例主要通过使用Worksheet的append()方法和Workbook的create_sheet()方法,从而实现在新建的工作表中添加汇总数据。当运行此案例的Python代码(A301.py文件)之后,将在“成绩表.xlsx”文件中新建一个工作表(汇总表),并在汇总表中汇总成绩表的每位学生的各科成绩,代码运行前后的效果分别如图020-1和图020-2所示。

图020-1

图020-2

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

import openpyxl
myBook=openpyxl.load_workbook('成绩表.xlsx')
mySheet=myBook['成绩表']
#数据范围(myRange)从成绩表(mySheet)的第5行开始,到最后一行
myRange=mySheet[str(mySheet.min_row+4):str(mySheet.max_row)]
#新建工作表(汇总表)
mySumSheet=myBook.create_sheet('汇总表')
#在汇总表(mySumSheet)中添加表头
mySumSheet.append(['姓名','总分'])
for myRow in myRange:
     #在汇总表(mySumSheet)中添加每位学生的姓名和总分
     mySumSheet.append([myRow[0].value,
                        sum([myCell.value for myCell in myRow][1:])])
myBook.save('结果表-成绩表.xlsx')

在上面这段代码中,myRange=mySheet[str(mySheet.min_row+4):str(mySheet.max_row)]表示以行方式设置成绩表(mySheet)的数据范围,即指定数据范围从成绩表的第5行(mySheet.min_row+4)开始,到最后一行(mySheet.max_row)。mySumSheet=myBook.create_sheet('汇总表')表示在工作簿(myBook)中新建汇总表(mySumSheet)。mySumSheet.append([myRow[0].value,sum([myCell.value for myCell in myRow][1:])])表示在汇总表(mySumSheet)中添加每位学生的姓名和总分。

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