首页 > 解决方案 > 将 pandas df 作为值粘贴到样式化的 excel 表中(保持格式 - 欣喜若狂)

问题描述

我有一个正在自动化的工作流程。我相信这对许多其他人来说将是一个非常熟悉的场景。任务有点像这样:

  1. 从邮件中下载 zip 文件(csv 文件)
  2. 从 csv 文件中提取值
  3. 将这些值粘贴到主 excel 文件中的相应工作表中(同时保留格式) - 使用 pandas 和 python 进行工作表映射并通过 pd DataFrames 提取/粘贴数据
  4. 对所有 csv 文件重复步骤 3-4 后保存主文件。并以电子邮件形式发送。

STEP 3 尤其是问题所在。在这一步,我已经完全编译了我想要的数据并将其注入到相应的工作表中(作为 df)。我只剩下把这个 df 写到主 excel 表中了。但是,我仍然找不到在不覆盖我的 excel 格式的情况下执行此操作的方法。将粘贴作为值解决方案而不是花费时间并通过在粘贴后执行额外的格式化步骤来延长代码真的很有帮助。希望能得到各位高手的帮助!

目前正在探索使用 pandas、numpy、openpyxl 来解决解决方案。

# INJECT ORDERED DATA FROM TEMP DF INTO TRANSACTION METRICS DF
transaction_metrics_df[INPUT_DATETIME] = temp_df["data"]
with pd.ExcelWriter(TRANSACTION_METRICS, engine="openpyxl") as writer:
   transaction_metrics_df.to_excel(writer, sheet_name=update_sheet, 
index=False)

我知道到目前为止,我的代码将只用一张纸覆盖整个主纸,而不是因为我不知道如何保存多张纸。只是目前我要先得到一张纸。无论如何,解决输出问题,最终的 xlsx 文件保存有正确的数据,但是,曾经存在的所有 excel 格式现在都丢失了,例如数字到 3dp、彩色填充、边框......基本上是欣喜若狂的问题

标签: pythonpandas

解决方案


推荐阅读