如何在 python 中使用 openpyxl 将范围从一张纸复制到另一张纸作为值

qww*_*www 3 python excel worksheet openpyxl

我必须将工作簿 1 的工作表 onw 中的 A1:Z100 范围复制到工作簿 2 的工作表 1 吗?

我的代码:

wb = openpyxl.load_workbook('file1.xlsx')
wb1 = openpyxl.load_workbook('file2.xlsx')
sheet = wb["R"]
sheet1 = wb1["Rt"]
sheet1.cell(row=1,column=1).value = sheet.cell(row=1,column=1).value
Run Code Online (Sandbox Code Playgroud)

这不能正常工作。如何将此范围复制到该工作表?

Joe*_*Joe 5

您可以尝试使用以下方法:

for i in range(1, 100):
    for j in range(1, 26):
        sheet1.cell(row=i,column=j).value = sheet.cell(row=i,column=j).value
wb1.save('file2.xlsx')
Run Code Online (Sandbox Code Playgroud)


Jam*_*Liu 5

提供另一种使用 pandas 的方法

import pandas as pd
excel = pd.read_excel('file1.xlsx', header=None)
writer = pd.ExcelWriter('file2.xlsx')
excel.loc[:99, :25].to_excel(writer, 'sheet1', index=False, header=False)
Run Code Online (Sandbox Code Playgroud)

添加仅包含数据的 openpyxl 解决方案

wb = openpyxl.load_workbook('file1.xlsx', data_only=True)
wb1 = openpyxl.load_workbook('file2.xlsx')
sheet = wb['R']
sheet1 = wb1['Rt']
for row in sheet['A1':'Z100']:
    for cell in row:
        sheet1[cell.coordinate].value = cell.value
wb1.save('file2.xlsx')
Run Code Online (Sandbox Code Playgroud)

编辑

cell.coordinate 返回类似 'A1' 的值,则sheet1['A1'].value 是单元格 A1 的值