Python-xlrd合并2个表格生成新表格

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