加载电子表格并复制一行并将其粘贴到不同的位置

Load a apreadsheet and copy a row and pasted it in a different location

如何将行从 D51 复制到 F51,然后将这些值粘贴到行 T20 到 AF20 中。

我知道如何加载电子表格

workbook = load_workbook(output)
sheet = workbook.active

但我不知道如何在循环中迭代得到这个

    sheet["T2"] = "=D6"
    sheet["U2"] = "=E6"
    sheet["V2"] = "=F6"
    sheet["W2"] = "=G6"
    sheet["X2"] = "=H6"
    sheet["Y2"] = "=I6"
    sheet["Z2"] = "=J6"
    sheet["AA2"] = "=K6"
    sheet["AB2"] = "=L6"
    sheet["AC2"] = "=M6"
    sheet["AD2"] = "=N6"
    sheet["AE2"] = "=O6"
    sheet["AF2"] = "=P6"

您可以使用以下代码实现此目的... 请注意,文件 output.xlsx 已打开、更新并保存。函数 num_to_excel_col 是从 借来的。 这将为接下来的 15 列(所有第 2 行)更新第 20 (T) 列,文本为“=D6”、“=E6”等。num_to_col 函数会将列号转换为等效的 excel 字符串(例如 27 将被转换为 AA 等)

import pandas as pd
import numpy as np
import openpyxl

workbook = openpyxl.load_workbook('output.xlsx')
ws = workbook.active

def num_to_excel_col(n):
    if n < 1:
        raise ValueError("Number must be positive")
    result = ""
    while True:
        if n > 26:
            n, r = divmod(n - 1, 26)
            result = chr(r + ord('A')) + result
        else:
            return chr(n + ord('A') - 1) + result

outcol = 4 #Paste in col 'D'

for col in range(20,35): #col 20 is T and doing this for next 15 columns
    txt = "="+num_to_excel_col(outcol)+"6"
    print(txt)
    ws.cell(row=2, column=col).value = txt
    outcol += 1

workbook.save("output.xlsx")