如何根据值粘贴到单元格中-Openpyxl

时间:2019-09-07 13:18:08

标签: python excel openpyxl

早上好。

我有两个Excel工作簿。第一个有我的源数据,第二个我想将源数据粘贴到其中。

我的代码在第一个工作簿中搜索具有今天日期的特定单元格,找到我需要与其关联的数据单元格,然后尝试将该范围的数据粘贴到第二个工作簿中。

该代码当前可以迭代第一个工作簿并找到正确的数据,但是当我尝试将数据粘贴到第二个工作簿中时就出现了问题。

例如,如果找到的数据来自A40:C40,它将粘贴到同一位置的第二个工作簿中(A40:C40)。我需要代码来迭代第二个工作簿,并根据另一个单元格值找到粘贴数据的正确位置。

为清楚起见,副本和粘贴的位置每天都在变化。我无法使用固定单元格引用。

from openpyxl import Workbook
import openpyxl
import datetime

wb = openpyxl.load_workbook('Online Log.xlsx')
wb1 = openpyxl.load_workbook('Blank.xlsx')

sheet = wb['Weather']
sheet1 = wb1['Sheet2']

# Find yesterday in date format
today = datetime.date.today()
yesterday = str(today - datetime.timedelta(days=1))

# Find position of midnight position on today's DPR
for row in sheet.iter_rows():
    for cell in row:
        if str(cell.value) == (str(today) + ' 00:00:00'):
           Start_Coord = sheet.cell(row=cell.row, column=3).coordinate
            End_Coord = sheet.cell(row=cell.row + 3, column=9).coordinate
            for row in sheet[Start_Coord:End_Coord]:
                for cell in row:
                    sheet1[cell.coordinate].value = cell.value

wb1.save('file2.xlsx')

我尝试合并以下代码以搜索要粘贴到第二个工作簿中的相关位置,但这也不起作用。

for rows in sheet1.iter_rows():
    for cell in rows:
        if str(cell.value) == 'Paste Cell Below':
            Start_Coord_2 = sheet1.cell(row=cell.row, column=3).coordinate
            End_Coord_2 = sheet1.cell(row=cell.row + 3, column=9).coordinate
            for rows in sheet1[Start_Coord_2:End_Coord_2]:
                 for cell in rows:
                    sheet1[cell.coordinate].value = cell.value
                    print(cell.coordinate)

0 个答案:

没有答案