将生成的pandas DataFrame数据写入excel的指定位置

在文件中生成了DataFrame格式数据想要写入excel的指定位置,比如第三行的第二列,网上的方法基本是使用to_excel直接写入,这样写入的位置就是固定的,不能指定位置。
通过openpyxl灵活设置的方式写入数据,这种方式对传统的中国式报表设置很友好。
import pandas as pd 
import openpyxl as op
from openpyxl import Workbook

wb = Workbook()#创建工作簿
ws = wb.create_sheet('数据', 0)#创建工作表

#data_week = op.load_workbook("数据.xlsx") #已经有工作簿之后可以直接加载出来


result_pd = pd.DataFrame(result) #result为处理之后的数据,可以是pivot_table 处理后的数据,也可以是group by 之后的数据
result_pd.columns = result_pd.columns.droplevel(0)  # 表头数据转化
result_pd = result_pd.reset_index()  # 转化index
columns = result_pd.columns.values #结果数据的表头
#print(len(columns))
sheet_columns = {1: "A", 2: 'B', 3: 'C', 4: 'D', 5: 'E', 6: 'F', 7: 'G', 8: 'H', 9: 'I', 10: 'J', 11: 'K',
                 12: 'L', 13: 'M', 14: 'N', 15: 'O', 16: 'P', 17: 'Q'} #表格中列和数字的对应关系以便在更灵活的写入数据

#以下是写入工作表中的具体位置可根据需要灵活设置
r = 4
for line in result_pd.values:
    for col in range(2, len(line) + 2):
        ws.cell(row=r, column=col).value = line[col - 2]
        for j in columns:
            ws.cell(row=3, column=col).value = columns[col-2] #写入表头
    r += 1
wb.save("数据.xlsx")#将写好的数据写入指定位置

你可能感兴趣的:(办公自动化,python,自动化)