python处理Excel表格,匹配表格中存在相同的数据项

目的:在两个表格中进行筛选,筛选中符合条件的,同时将表格一中有的列添加到符合条件的另一列中。

import xlrd
import xlwt

def read_excel():
    #打开文件

    # xlrd用来读取xls
    matchwork = xlrd.open_workbook('matchfile1.xls')
    databaseworkBook = xlrd.open_workbook('database.xls')

    # 保存的文件
    result_book = xlwt.Workbook(encoding='utf-8', style_compression=0)
    result_sheet = result_book.add_sheet('result', cell_overwrite_ok=True)
    col = ('名称1', '名称2', '号', '姓名1', '电话1', '姓名2', '电话2', '性别', '类别', '号3', '地址')

    for i in range(0, 10):
        result_sheet.write(0, i, col[i])

    # 取sheet1内容
    match_sheet1_content = matchwork.sheet_by_index(0)
    database_sheet_content = databaseworkBook.sheet_by_index(0)

    # 将需要匹配的多行数据保存到table中
    match_table = []
    result_table = []
    for i in range(match_sheet1_content.nrows):
        rows = match_sheet1_content.row_values(i)
        match_table.append(rows)
        #print(rows[6])

    print(len(match_table))
    result_row = 1

    for i in range(1, len(match_table)):
        for j in range(1, database_sheet_content.nrows):
            rows = database_sheet_content.row_values(j)
           
            #if match_table[i][3] == rows[0] and (match_table[i][4] == rows[1] or match_table[i][4] == rows[2]):
            #if match_table[i][3] == rows[0]: 

            
            if (match_table[i][3] == rows[0] and (rows[6].find(match_table[i][0]) != -1 or  rows[5].find(match_table[i][0]) != -1)):
            # 匹配电话号码
            # if(((match_table[i][4] != "" and (match_table[i][4] == rows[1] or match_table[i][4] == rows[2])) or
            #     (match_table[i][6] != "" and(match_table[i][6] == rows[1] or match_table[i][6] == rows[2])))):

            # if (match_table[i][4] == rows[1] or match_table[i][4] == rows[2] or match_table[i][6] == rows[1] or match_table[i][6] == rows[2]) \
            #         and (match_table[i][4] != "" or match_table[i][6] != ""):
                print(i)
                print('1' + match_table[i][3] + ' ' + match_table[i][4])
                print('2' + rows[0] + ' ' + rows[1] + ' ' + rows[2])

                for ii in range(0, 8):
                    result_sheet.write(result_row, ii, match_table[i][ii])
                    print('3' + match_table[i][ii])
                result_sheet.write(result_row, 9, rows[3])
                result_sheet.write(result_row, 10, rows[6])

                result_row = result_row + 1

    save_path = 'name_address_excel.xls'
    result_book.save(save_path)

    print('hello')


if __name__ == '__main__':
    read_excel()

  • 1
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
好的,以下是一个处理 Excel 表格两组数据匹配结果的 Python 程序: ```python import openpyxl # 打开 Excel 文件 workbook = openpyxl.load_workbook('data.xlsx') # 选择工作表 sheet1 = workbook['Sheet1'] sheet2 = workbook['Sheet2'] # 获取 Sheet1 和 Sheet2 的数据 data1 = [row[0].value for row in sheet1.iter_rows(min_row=2)] data2 = [row[0].value for row in sheet2.iter_rows(min_row=2)] # 匹配两组数据 matched_data = set(data1) & set(data2) # 创建新工作表,并写入匹配结果 matched_sheet = workbook.create_sheet('Matched Data') matched_sheet.append(['匹配结果']) for data in matched_data: matched_sheet.append([data]) # 保存 Excel 文件 workbook.save('data.xlsx') ``` 这个程序使用了 `openpyxl` 模块来处理 Excel 文件。首先,程序使用 `openpyxl.load_workbook()` 函数打开 Excel 文件,并使用 `workbook['Sheet1']` 和 `workbook['Sheet2']` 来选择 Sheet1 和 Sheet2 工作表。接下来,程序使用 `sheet1.iter_rows()` 和 `sheet2.iter_rows()` 函数获取两个工作表的数据,并分别存储在 `data1` 和 `data2` 列表。 然后,程序使用 `set()` 函数和 `&` 运算符将两组数据取交集,得到匹配结果,并将结果写入新工作表。最后,程序使用 `workbook.save()` 函数保存 Excel 文件。 需要注意的是,这个程序Excel 文件名为 `data.xlsx`,而 Sheet1 和 Sheet2 工作表的数据是从第二行开始读取的(即第一行为表头)。如果需要处理其他的 Excel 文件或工作表,需要根据实际情况进行修改。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一枚努力的程序猿

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值