[英]copy&paste from first row to last not-blank row with openpyxl
我想复制一个范围并将其粘贴到另一个 excel。
我找到了这个; https://yagisanatode.com/2017/11/18/copy-and-paste-ranges-in-excel-with-openpyxl-and-python-3/
但是在这里,您需要为“pasteRange”提供特定的行号和列号。 但是在“pasteRange”中,我想以“最后一个非空白行”结束该行。
这是我在下面尝试的特定行、列号;
import openpyxl
# Copied data
wb = openpyxl.load_workbook("D:\Documents\Desktop\deneme/2020_03_Kalip_Kontrol_Raporu2.xlsx") # Add file name
sheet = wb["Sheet1"] # Add Sheet name
# Paste Data
template = openpyxl.load_workbook("D:\Documents\Desktop\deneme/2020 Data_çalışma2.xlsx") # Add file name
temp_sheet = template["Sheet1"] # Add Sheet name
# Copy range def
def copyRange(startCol, startRow, endCol, endRow, sheet):
rangeSelected = []
# Loops through selected Rows
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 def
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
#Copy-Paste Operation
def createData():
selectedRange = copyRange(2, 8, 183, 4500, sheet) # Change the 4 number values (startCol, startRow, endCol, endRow, sheet)
pastingRange = pasteRange(2, 3286, 183, 7000, temp_sheet, selectedRange) # Change the 4 number values (startCol, startRow, endCol, endRow, sheet)
template.save("D:\Documents\Desktop\deneme/2020 Data_çalışma2.xlsx")
go= createData()
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.