题目如下:
首先导入openpyxl包,调用load_workbook打开目标工作簿
调用worksheet选中目标工作表
使用max_row和max_column获取该数据的最大行列值
在第一行使用cell函数最后写入数据”所有爱好“
要想获取各个单元格的内容,要使用内层for循环,i代表行,j代表列
同样使用cell函数来获取单元格的内容,获取的内容添加到字符串后面,使用空格隔开每个值
最后使用save函数另存为”每个人的爱好汇总.xlsx“文件
from openpyxl import load_workbook
def sumEXCEl(FileName):
wb = load_workbook(FileName) #打开使用文件
#对每个人的爱好进行汇总
ws = wb.worksheets[0] #打开该文件的第一个工作表(指定工作表)
rowNum = ws.max_row #返回最大行
colNum = ws.max_column #返回最大列
# print(rowNum,colNum)
ws.cell(row=1,column=colNum+1,value="所有爱好") #单元格写入数据
#汇总每个人的爱好
for i in range(2,rowNum+1):
all_haihao = ""
for j in range(2,colNum+1):
if(ws.cell(row=i,column=j).value) == "是": #判断值为“是”,则获取row=1,column=j的值
cell_txt = ws.cell(row=1, column=j).value # 获取目标单元格的值
all_haihao = all_haihao + cell_txt +" " #获取后加到all-haihao变量上,中间用空格隔开
print(ws.cell(row=i,column=1).value + "的所有爱好是" + all_haihao) #进行汇总打印
ws.cell(row=i,column=colNum+1).value = all_haihao #汇总后添加到最后一列
wb.save("每个人的爱好汇总.xlsx") #另存
def main():
fn = "每个人的爱好.xlsx"
sumEXCEl(fn)
if __name__ == '__main__':
main()
运行结果:
知识点: