python - 每次程序运行时使用 openpyxl 在 excel 中写入新行
问题描述
我是 python 新手,我正在尝试使用 python selenium 自动化。我试图通过每 30 分钟运行一次 selenium python 脚本将值从报告中存储在 excel 中。每次运行脚本时,我都需要存储以下值:A 列中的日期、B 列中的时间、C 列中报告的百分比值、D 列中报告的有效值等等。
下面是我的脚本,您可以从我的第一次脚本运行中看到,我能够将值存储在第 2 行中,并且工作正常。
如何从脚本的第 2 次运行、第 3 次运行......将值存储在第 3 行、第 4 行等中?有人可以帮忙吗?
from openpyxl import load_workbook
path = r"C:\MyFolder\Filename.xlsx"
TodaysDate = time.strftime("%b%d")
sheet_name = TodaysDate.upper()
wb = load_workbook(path)
sheet = wb[sheet_name]
Date = time.strftime(("%b%d"))
sheet.cell(row=2, column=1).value = Date
Time = time.strftime("%I%M")
sheet.cell(row=2, column=2).value = Time
PCTCLOSE = driver.find_element_by_xpath("//option[contains(text(),'Percentage Close')]").text
sheet.cell(row=2, column=3).value = PCTCLOSE
ValidResponse = driver.find_element_by_xpath("//option[contains(text(),'Valid
Response')]").text
sheet.cell(row=2, column=4).value = ValidResponse
wb.save(path)
解决方案
您应该能够在 openpyxl 文档中找到您需要的信息,简单搜索“openpyxl max row”应该会显示您需要的页面(链接到此处文档中的相关页面)。下面是你的代码的修改版本,应该做你想做的事
from openpyxl import load_workbook
path = r"C:\MyFolder\Filename.xlsx"
TodaysDate = time.strftime("%b%d")
sheet_name = TodaysDate.upper()
wb = load_workbook(path)
sheet = wb[sheet_name]
# Find last row of written data
row = sheet.max_row + 1
# Writing your data at the bottom
Date = "foo"
Time = "bar"
PCTCLOSE = "foo"
ValidResponse = "bar"
sheet.cell(row=row, column=1).value = Date
sheet.cell(row=row, column=2).value = Time
sheet.cell(row=row, column=3).value = PCTCLOSE
sheet.cell(row=row, column=4).value = ValidResponse
wb.save(path)
推荐阅读
- php - 如何在 PHP 中安装 Google Index API
- asp.net - 用一行代码构建 ASP.NET Core API 和 Angular
- unity3d - Physics OverlapSphere 未检测到碰撞
- javascript - 有什么更好的方法来访问它。Function.bind 与捕获变量
- ios - 转义闭包捕获变异的“自我”参数,Firebase
- delphi - Rad Studio 10.4 中的自定义帮助
- android - iOS 和 Android 模拟器当前时间的差异
- python - 如何重复 python 脚本?
- reactjs - 如何在 Material-UI 中将锚点设置为 Popover
- python - 删除列表的列表