如何在每次运行 python 脚本时将新工作表添加到现有的 .xlsx 文件?

问题描述 投票:0回答:1

TL;每次运行脚本时,DR 都需要 python 脚本将新工作表添加到现有的 excel 文件(不覆盖)

我构建了一个网络抓取脚本,从网站提取价格并通过 pandas 的 ExcelWriter 将它们推送到 excel 文件。在当前状态下,每次抓取价格时,文件都会被最新抓取的价格覆盖。

虽然这对于收集最新价格很有效,但如果脚本没有覆盖 .xlsx 文件,而是将每个刮擦作为一张表存储在当前 excel 文件中,那就太好了。我希望我的脚本每次运行时基本上只向当前 excel 文件添加一个新工作表。我会用刮板运行的日期命名每张纸。

当前代码:

with pd.ExcelWriter('{file_path}') as writer:
    df.to_excel(writer, sheet_name='{date}')

我知道 openpyxl 用于修改现有的 excel 电子表格。但是,我对 openpyxl 的使用受到限制。任何指针都会有所帮助。如果需要任何进一步的上下文,请告诉我。

python pandas openpyxl
1个回答
0
投票

.. 我希望我的脚本基本上只是在当前的 excel 文件 每次脚本运行时。

您可以在带有ExcelWriter

引擎的附加模式下使用
openpyxl

from datetime import datetime

with pd.ExcelWriter(file_path, mode="a", engine="openpyxl") as writer:
    df.to_excel(writer, sheet_name=datetime.now().strftime("%Y%m%d_%H%M%S"))

注意:我们使用时间戳 (

"%Y%m%d_%H%M%S"
) 作为新的 sheetname 以避免脚本在同一天运行多次的情况下名称重叠。

© www.soinside.com 2019 - 2024. All rights reserved.