Python向已有Excel工作表sheet写入数据框dataframe

发布时间:2022-08-17 13:29

使用Python向已有Excel工作表sheet写入数据框dataframe数据

项目场景:

通常使用SQL、Python处理完数据后会将需要导出的数据输出成CSV格式,然后必要时使用Excel模板进行格式上的调整(供业务人员查看),或者输入到Excel模板进一步计算,该步骤一般都是人工操作,对Python最后的输出操作优化可以提高一点工作效率。

具体示例

原有工作簿有两个工作表sheet1,sheet2,sheet1带有格式,需要从Python导出数据往里面写入,sheet2是对sheet1其中两列进行计算的工作表,已写入公式
Python向已有Excel工作表sheet写入数据框dataframe_第1张图片
sheet2设定带有公式计算
Python向已有Excel工作表sheet写入数据框dataframe_第2张图片
Python中有该数据框数据需要输出至sheet1

data=pd.DataFrame({'年份':[1995,1996,1997,1998,1999],'地区':['广州市','广州市','广州市','广州市','广州市'],
                   '性别':['男','男','男','男','男'],'婚姻':['未婚','未婚','未婚','未婚','未婚'],'AUM':[200000,200001,200002,200003,200004],
                  '人数':[40,41,42,43,44]})

工具

openpyxl模块:可以使往Excel文件追加数据时而不覆盖文件写入的模块;
pandas模块:to_excel()将dataframe直接整个输出到Excel的函数

import pandas as pd
from openpyxl import load_workbook,Workbook 

测试时注意每一次都需要完整读入与关闭(load与save,close),否则改动后会发现结果无变化,原因是读入的是前一次测试的结果.

解决方法

  • 方法1
    由于某些业务场景可能需要逐个单元格读入到已有表格中的某些位置,使用两层循环的方式逐格读入数据框的值
    需要注意的是表格位置与Python中数据框行列的起始位置的差异、range(m,n)实际输出的是从m至n-1的值。

ItVuer - 免责声明 - 关于我们 - 联系我们

本网站信息来源于互联网,如有侵权请联系:561261067@qq.com

桂ICP备16001015号