Сравните два файла Excel в python - PullRequest
1 голос
/ 02 марта 2020
import xlrd
wb_1 = xlrd.open_workbook('Book1.xls', on_demand=True)
ws_1 = wb_1.sheet_by_name('Sheet3')
wb_2 = xlrd.open_workbook('Book2.xls', on_demand=True)
ws_2 = wb_2.sheet_by_name('Sheet3')
for i in range(ws_1.ncols):
    col_value1 = ws_1.cell_value(0, i)
    for cell in range(ws_1.nrows):
        cell_value1 = ws_1.cell(cell, i)
        for j in range(ws_2.ncols):
            col_value2 = ws_2.cell_value(0, i)       
            for cell in range(ws_2.nrows):
                cell_value2 = ws_2.cell(cell, i)
                if cell_value2 == cell_value1:
                    print('same')

Я пытаюсь сравнить две таблицы Excel, я не уверен, правильно ли я иду. Как найти измененные значения

Ответы [ 2 ]

2 голосов
/ 02 марта 2020

Попробуйте следующий код для извлечения различий между строками и столбцами.

import xlrd
wb_1 = xlrd.open_workbook('Book1.xlsx', on_demand=True)
ws_1 = wb_1.sheet_by_name('Sheet3')

rw,cl,rw2,cl2=[[] for i in range(4)]

for i in range(0,ws_1.ncols):
    col_value1 = ws_1.cell(0, i).value
    cl.append(col_value1)
    for cell in range(0,ws_1.nrows):
        row_value1 = ws_1.cell(cell, i).value
        rw.append(row_value1)

wb_2 = xlrd.open_workbook('Book2.xlsx', on_demand=True)
ws_2 = wb_2.sheet_by_name('Sheet3')        

for i in range(0,ws_2.ncols):
    col_value2 = ws_2.cell(0, i).value
    cl2.append(col_value2)
    for cell in range(0,ws_2.nrows):
        row_value2 = ws_2.cell(cell, i).value
        rw2.append(row_value2)

for i in range(len(cl)):
    for j in range(len(cl2)):
        if cl[i]!=cl2[j]:
            print("column difference",i,j)

for i in range(len(rw)):
    for j in range(len(rw2)):
        if rw[i]!=rw2[j]:
            print("row difference",i,j)
1 голос
/ 02 марта 2020

Попробуйте преобразовать Excel в файл CSV, он разделит ваши значения запятыми. Библиотека называется CSV. Просто "import csv". Затем откройте файл, используя "with", получите строки с именами столбцов, и вы получите список или словарь (в зависимости от подхода). Вам нужно будет просто сравнить индексы списка, и это самый простой способ.

Читать статью: https://realpython.com/python-csv/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...