首页 > 解决方案 > 每次程序运行时使用 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)

标签: pythonseleniumopenpyxl

解决方案


您应该能够在 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)

推荐阅读