
import xlrd
import xlwt
"""
将表格1、表格2合并
合并规则:
1. 表格1的姓名、学号,与表格2的姓名、学号相同
2. 将表格1的姓名、学号、数学成绩,和表格2中的物理、化学成绩进行合并
"""
x1 = xlrd.open_workbook("合并表格1.xlsx")
x2 = xlrd.open_workbook("合并表格2.xlsx")
sheet1_1=x1.sheets()[0] # 表格1的sheet1
print("表格1总行数:",sheet1_1.nrows)
print("表格1总列数:",sheet1_1.ncols)
sheet2_1=x2.sheets()[0] # 表格1的sheet1
print("表格2总行数:",sheet2_1.nrows)
print("表格2总列数:",sheet2_1.ncols)
# for item in sheet1_1.get_rows():
# print(item[0].)
datas=[]
for index in range(2,sheet1_1.nrows): # 循环sheet1_1表格中的每一行
sheet1_1_row=sheet1_1.row_values(index)
# print(sheet1_1_row)
for index2 in range(2,sheet2_1.nrows): # 循环sheet2_1表格中的每一行
sheet2_1_row=sheet2_1.row_values(index2)
# print(sheet2_1_row)
# 判断第1个表格的姓名、学号,与 第2个表格的姓名、学号相同
if(sheet1_1_row[0]==sheet2_1_row[0] and sheet1_1_row[1]==sheet2_1_row[1]):
l=[] # 定义list,用于组成一行记录
l.append(sheet1_1_row[0]) # 将第1个表格的姓名放入list中
l.append(sheet1_1_row[1]) # 将第1个表格的学号放入list中
l.append(sheet1_1_row[2]) # 将第1个表格的数学成绩放入list中
l.append(sheet2_1_row[2]) # 将第2个表格的物理成绩放入list中
l.append(sheet2_1_row[3]) # 将第2个表格的化学成绩放入list中
datas.append(l) # 添加到datas中
print(datas)
# 创建一个workbook 设置编码
workbook = xlwt.Workbook(encoding = 'utf-8')
# 创建一个worksheet
worksheet = workbook.add_sheet('Sheet1')
row_count=len(datas) # 总行数
# 写入excel的标题
worksheet.write(0,0,"姓名")
worksheet.write(0,1,"学号")
worksheet.write(0,2,"数学")
worksheet.write(0,3,"物理")
worksheet.write(0,4,"化学")
# 写入数据
for row_index in range(row_count):
row=datas[row_index]
col_count=len(row) # 总列数
for col_index in range(col_count):
# 参数对应 行, 列, 值
worksheet.write(row_index+1,col_index, row[col_index])
# 保存
workbook.save('合并结果.xlsx')
原文出处:/show_1IX1TyS4H5Fj.html