首页 > 解决方案 > Openpyxl - 将单元格范围(带公式)从工作簿复制到另一个

问题描述

我正在尝试从 Workbook 1 复制特定行并将其附加到 Workbook 2 中的现有数据中。

从Workbook 1复制突出显示的行 ,并将它们附加到Workbook 2的“March”下方

到目前为止,我成功复制并粘贴了范围,但是有两个问题:

1.细胞是移位的

2.百分比(公式)丢失,只留下数值。

在此处查看结果

import openpyxl as xl

source = r"C:\Users\Desktop\Test_project_20200401.xlsx"
wbs = xl.load_workbook(source)
wbs_sheet = wbs["P2"] #selecting the sheet

destination = r"C:\Users\Desktop\Try999.xlsx"
wbd = xl.load_workbook(destination)
wbd_sheet = wbd["A3"] #select the sheet

row_data = 0

for row in wbs_sheet.iter_rows():
    for cell in row:
        if cell.value == "Yes":
            row_data += cell.row

for row in wbs_sheet.iter_rows(min_row=row_data, min_col = 1, max_col=250, max_row = row_data+1):
    wbd_sheet.append((cell.value for cell in row))            


wbd.save(destination)

有谁知道我该如何解决这个问题?任何反馈/解决方案都会有所帮助!

谢谢!

标签: pythonexcelpandasopenpyxl

解决方案


我认为min_col应该= 0

Range("A1").Formula(在 VBA 中)获取公式。Range("A1").Value(在 VBA 中)获取值。

所以尝试在 Python 中使用 .formula

(感谢: 从单元格中取回公式 - VBA ...如果可行)


推荐阅读