繁体   English   中英

使用openpyxl从第一行复制并粘贴到最后一个非空白行

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM