python - 如何根据值粘贴到单元格中 - 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)
解决方案
推荐阅读
- pyspark-sql - 使用日期列手动创建数据框
- sql - 查询 Transaction_Table 获取 Count
- java - 爪哇。我正在使用三个具有相同项目的单独组合框。更改一个选择会影响所有三个,我需要取消它们的链接
- python - 等待元素 error_handler.check_response(response)
- python-3.x - 如何利用并行性来加速条件计数?
- visual-studio - 图标未出现在 TabbedPage 上
- javascript - 如何在 jest setupFiles 中访问“期望”
- c# - C# 无需安装即可连接到 Access DB
- python - “节点”对象不可调用
- javascript - 正则表达式验证主题标签 (#),忽略包含锚 (#) 的 URL