У меня есть два файла Excel, master и child. Все имена столбцов одинаковы в обоих файлах.
Я хочу сопоставить столбец C обоих файлов, если есть совпадение, обновите все столбцы для этой указанной строки c и, если совпадение не найдено, добавьте строка в конце мастер-файла.
Я хочу обновить данные из дочернего файла в мастер-файл на основе этой логики c. До сих пор я могу обновить мастер-файл, скопировав все данные из дочернего в мастер, но данные в мастер-файле заменяются из дочернего файла для указанного диапазона. Мы будем благодарны за любую помощь.
import openpyxl
Master = openpyxl.load_workbook("Master.xlsx")
Child = openpyxl.load_workbook("Child.xlsx")
Master_File = Master["Sheet1"]
Child_File = Child["Sheet1"]
Функция для копирования строк и столбцов из дочернего файла
def copyRange(startCol, startRow, endCol, endRow, sheet):
rangeSelected = []
#Loop through selected rows------------------------------------------------
for i in range(startRow, endRow + 1, 1):
#Appends to row selected list--------------------------------------------
rowSelected = []
for j in range(startCol, endCol + 1, 1):
rowSelected.append(sheet.cell(row=i, column=j).value)
#Adds the rowSelected list and nests inside rangesSelected list------------------------------
rangeSelected.append(rowSelected)
return rangeSelected
Функция для вставки всех данных в Главный файл
def pasteRange(startCol, startRow, endCol, endRow, sheetReceiving, copiedData):
countRow = 0
for i in range(startRow, endRow + 1, 1):
countCol = 0
for j in range(startCol, endCol + 1, 1):
sheetReceiving.cell(row=i, column=j).value = copiedData[countRow][countCol]
countCol += 1
countRow += 1
Основная функция
def createData():
wb = Workbook()
print("Your data is being Processed.....")
selectedRange = copyRange(1,10,39,45, Child_File)
pastingRange = pasteRange(1,10,39,45, Master_File, selectedRange)
Master.save(r"Final.xlsx")
print("Range copied and pasted")
Final = createData()