26 列数据求和
import openpyxl
myBook=openpyxl.load_workbook('收入表.xlsx')
mySheet=myBook.active
#指定在收入表(mySheet)中按列操作单元格的数据范围(myRange)
myRange=mySheet.iter_cols(min_row=5,min_col=2,max_row=8,max_col=4)
myNewRow=['合计']
#循环收入表(myRange)的B、C、D列(myCol)
for myCol in myRange:
#按列(myCol)对单元格数据求和
myColSum=sum([myCell.value for myCell in myCol])
myNewRow.append(myColSum)
#直接在收入表(mySheet)的末尾添加一行(分类收入)合计
mySheet.append(myNewRow)
myBook.save('结果表-收入表.xlsx')
27 得到列最大值
import openpyxl
myBook=openpyxl.load_workbook('收入表.xlsx')
mySheet=myBook.active
#指定按列操作单元格的数据范围(B5:D8)
myRange=mySheet.iter_cols(min_row=5,min_col=2)
myMax=['最大值']
#使用列表推导式获取每列的最大值
myMax+=[max([myCell.value for myCell in myCol]) for myCol in myRange]
#直接在收入表的末尾添加最大值(行)
mySheet.append(myMax)
myBook.save('结果表-收入表.xlsx')
28 指定位置列数据求和
import openpyxl
myBook=openpyxl.load_workbook('收入表.xlsx')
mySheet=myBook.active
#根据起始单元格和结束单元格设置数据范围的最小行列数和最大行列数
myMinRow=mySheet.min_row+4
myMinColumn=mySheet.min_column+1
myMaxRow=mySheet.max_row
myMaxColumn=mySheet.max_column
#指定按列操作单元格的数据范围
myRange=mySheet.iter_cols(min_row=myMinRow,min_col=myMinColumn,
max_row=myMaxRow,max_col=myMaxColumn)
myRowIndex=myMinRow+4
myColIndex=myMinColumn-1
mySheet.cell(myRowIndex,myColIndex).value='合计'
#按列对单元格数据求和
for myCol in myRange:
myColIndex+=1
myColSum=sum(myCell.value for myCell in myCol)
#将合计数据写入单元格
mySheet.cell(myRowIndex,myColIndex).value=myColSum
myBook.save('结果表-收入表.xlsx')
29 得到九九乘法表
import openpyxl
myBook=openpyxl.Workbook()
mySheet=myBook.active
mySheet.title='九九表'
#表示从1循环到9
for x in range(1,10):
#表示从1循环到x
for y in range(1,x+1):
#在单元格中写入口诀数据
mySheet.cell(x,y,'%d×%d=%d'%(y,x,x*y))
myBook.save('结果表-九九乘法表.xlsx')
30 列数据求和
import openpyxl
myBook=openpyxl.load_workbook('收入表.xlsx')
mySheet=myBook.active
#对收入表(mySheet)的D列的第5、6、7、8行数据求和
myColDSum=sum([myCell.value for myCell in mySheet['D'][4:]])
#对收入表(mySheet)的C列的第5、6、7、8行数据求和
myColCSum=sum([myCell.value for myCell in mySheet['C'][4:]])
#对收入表(mySheet)的B列的第5、6、7、8行数据求和
myColBSum=sum([myCell.value for myCell in mySheet['B'][4:]])
#在收入表(mySheet)的D列、C列、B列的第9行中写入合计金额
mySheet['D9']=myColDSum
mySheet['C9']=myColCSum
mySheet['B9']=myColBSum
mySheet['A9']='合计'
myBook.save('结果表-收入表.xlsx')
31 行数据求和
import openpyxl
myBook=openpyxl.load_workbook('收入表.xlsx')
mySheet=myBook.active
#对第5行的B、C、D列(即2、3、4列)的单元格数据求和,并在合计列的单元格中写入合计
mySheet['E5']=sum([myCell.value for myCell in mySheet[5][1:4]])
mySheet['E6']=sum([myCell.value for myCell in mySheet[6][1:4]])
mySheet['E7']=sum([myCell.value for myCell in mySheet[7][1:4]])
mySheet['E8']=sum([myCell.value for myCell in mySheet[8][1:4]])
myBook.save('结果表-收入表.xlsx')
32 列数据求和
import openpyxl
myBook=openpyxl.load_workbook('收入表.xlsx')
mySheet=myBook.active
#获取收入表(mySheet)的B、C、D列
myRange=mySheet['B':'D']
myColIndex=2
#循环收入表(myRange)的B、C、D列(myCol)
for myCol in myRange:
#计算列(myCol)的第5、6、7、8行的单元格数据合计
myColSum=sum(myCell.value for myCell in myCol[4:8])
#在列(myCol)的第9行的单元格中写入合计数据(myColSum)
mySheet.cell(9, myColIndex).value=myColSum
myColIndex+=1
mySheet['A9']='合计'
myBook.save('结果表-收入表.xlsx')
33 行数据求和
import openpyxl
myBook=openpyxl.load_workbook('收入表.xlsx')
mySheet=myBook.active
#获取收入表(mySheet)第5行到第8行之间的行(myRows)
myRows=mySheet['5':'8']
myRowIndex=5
for myRow in myRows:
#对行(myRow)的B列、C列、D列的单元格数据求和(myRowSum)
myRowSum=sum(myCell.value for myCell in myRow[1:4])
#在行(myRow)的第5列单元格写入求和数据(myRowSum)
mySheet.cell(myRowIndex,5).value=myRowSum
myRowIndex+=1
myBook.save('结果表-收入表.xlsx')
34 写入数据
import openpyxl
myBook=openpyxl.load_workbook('收入表.xlsx')
mySheet=myBook.active
myList=[['2季度',373445,138815,445],['3季度',496008,168123,1246],
['4季度',120234,499028,118896]]
#循环列表(myList)的行(myRow)数据
for myRow in myList:
#根据行(myRow)数据在收入表(mySheet)的末尾添加新行
mySheet.append(myRow)
myBook.save('结果表-收入表.xlsx')
35 列数据平均值
import openpyxl
myBook=openpyxl.load_workbook('收入表.xlsx')
mySheet=myBook.active
mySheet['B9']='=Average(B5:B8)'
mySheet['C9']='=Average(C5:C8)'
mySheet['D9']='=Average(D5:D8)'
myBook.save('结果表-收入表.xlsx')