加载电子表格并复制一行并将其粘贴到不同的位置
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")
如何将行从 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
是从
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")