Мне удалось открыть книгу и сохранить ее, но я не могу скопировать и вставить определенные строки и столбцы. Я хотел бы иметь возможность использовать это для нескольких листов и добавлять данные к данным по мере роста строк.
Конечный продукт Я хотел бы выбрать несколько файлов Excel и скопировать определенные строки и столбцы, а затем добавить каждый в одну книгу Excel. Поскольку теперь мне нужно просмотреть 20 рабочих книг, скопировать и вставить их в одну рабочую книгу.
Я пробовал несколько разных методов и искал на форумах. Я могу только копировать и вставлять листы.
import openpyxl
#Prepare the spreadsheets to copy from and paste too.
#File to load
wb = openpyxl.load_workbook("Test_Book.xlsx")
# Get a sheet by name
sheet = wb['Sheet1']
#File to be pasted into
template = openpyxl.load_workbook("Copy of Test_Book.xlsx") #Add file
name
temp_sheet = template['Sheet1'] #Add Sheet name
#Copy range of cells as a nested list
#Takes: start cell, end cell, and sheet you want to copy from.
def copyRange(startCol, startRow, endCol, endRow, sheet):
rangeSelected = []
#Loops through selected Rows
#A 8 to BC 27
for i in range(startRow,endRow + 1,1):
#Appends the row to a RowSelected 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 the rangeSelected
rangeSelected.append(rowSelected)
return rangeSelected
#Paste range
#Paste data from copyRange into template sheet
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():
print("Processing...")
selectedRange = copyRange(1,2,4,14,sheet)
pasteRange(1,2,4,14,temp_sheet,selectedRange)
template.save("Copy of Test_Book.xlsx")
print("Range copied and pasted!")