Openpyxl - 将单元格区域(带公式)从工作簿复制到另一个工作簿

我正在尝试从工作簿1中复制特定行,并将其追加到工作簿2中的现有数据中。

工作簿 1 中复制突出显示的行,并将它们追加到“March”下方的工作簿 2 中

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

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)

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


谢谢!


LEATH
浏览 118回答 2
2回答

MMTTMM

我认为min_col应该= 0范围(“A1”)。公式(在 VBA 中)获取公式。范围(“A1”)。值(在 VBA 中)获取值。因此,请尝试在蟒蛇中使用 .公式(感谢:从单元格中获取公式 - VBA ...如果这有效)

四季花海

只是想在这里添加我自己的解决方案。我所做的是循环访问列并应用“cell.number_format= '0%',这会将您的单元格值转换为百分比。for col in ws.iter_cols(min_row=1, min_col=2, max_row=250, max_col=250):     for cell in col:         cell.number_format = '0%'更多信息可以在这里找到: https://openpyxl.readthedocs.io/en/stable/_modules/openpyxl/styles/numbers.html
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python