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