Написание нового файла Excel без данных из предыдущей книги - PullRequest
0 голосов
/ 17 апреля 2020

Я пытаюсь написать программу для сравнения строк из фиксированной матрицы с 2 указанными c столбцами из файла Excel. Пока что я сначала пытаюсь добиться того, чтобы сравнение с матчем подряд происходило. До сих пор сравнение одной строки из матрицы прошло успешно.

import openpyxl as xl
from IDM import idm_matrix


wb = xl.load_workbook('Auswertung_C33.xlsx')
sheet = wb['TriCad_Format']

for row in range(2, sheet.max_row + 1):
    cell = sheet.cell(row, 8)
    if idm_matrix[0][0] in cell.value:
         sheet.cell(row=2, column=1).value = cell.value
         wb.save('Auswertung.xlsx')

Вопрос: Как добиться того, чтобы совпадающие значения были сохранены в новом файле БЕЗ загруженной книги выше?

Для дальнейшей помощи по этому проекту я свяжусь с вами, как только столкнусь с большими трудностями при сравнении матриц.

Спасибо за вашу помощь. С уважением, Алекс

Ответы [ 2 ]

0 голосов
/ 22 апреля 2020

@ henjiFire: Вот как сейчас выглядит код:

for row in range(2, sheet.max_row + 1):
    row_list = []
    for col in range(1, sheet.max_column + 1):
        cell = sheet.cell(row, col)
        row_list.append(cell.value)
        # adjust row,col offset to match your matrix index below, e.g. row-2, col-1. you might need another loop to loop through your matrix.
    if idm_matrix[0][0] in row_list:
        if row_list[14] is not None and idm_matrix[0][1] in row_list[14]:
                result_sheet.append(row_list)
0 голосов
/ 17 апреля 2020

Вам нужно будет создать новую рабочую книгу, чтобы сохранить свой ответ (результат сравнения). что-то вроде ниже. Надеюсь, что это полезно.

    import openpyxl as xl
    from IDM import idm_matrix


    wb = xl.load_workbook('Auswertung_C33.xlsx')
    result_wb = xl.Workbook() #workbook to save your result.
    result_sheet = result_wb.active #get the active sheet to save your result.
    sheet = wb['TriCad_Format']

    for row in range(2, sheet.max_row + 1):
        row_list = []
        for col in range(1, sheet.max_col+1):
            cell = sheet.cell(row, col)
            row_list.append(cell)
            #adjust row,col offset to match your matrix index below, e.g. row-2, col-1. you might need another loop to loop through your matrix.
            if idm_matrix[i][j] in row_list:
                result_sheet.append(row_list)          
                result_wb.save('Auswertung.xlsx') #save the result workbook

...