python dataframe合并单元格后写入excel

1、以dataframe读取excel内容

import pandas as pd
df = pd.read_excel(r"C:\Users\Administrator\Desktop\1.xlsx",sheet_name='Sheet2')
print(df)

 

2、需要如何合并

 3、合并单元格,写入excel

from openpyxl import Workbook
from openpyxl.utils.dataframe import dataframe_to_rows
import pandas as pd

def to_merge(df):
    # 按照第一列id进行每行单元格合并
    # id列去重,确定一列需要合并成几个值
    df_key = list(set(df['id'].values))
    wb = Workbook()
    ws = wb.active
    # 将每行数据写入ws中
    for row in dataframe_to_rows(df, index=False, header=True):
        ws.append(row)
    #   遍历第一列去重后id
    for i in df_key:
        # 获取id等于指定值的几行数据
        df_id = df[df.id == i].index.tolist() # 索引值从0开始
        for j in range(1, 3):# 遍历 需要合并两列,openyxl中,读excel等的序号都是从1开始,所以合并两列,需要遍历range(1, 3),取j=1,j=2
            ws.merge_cells(start_row=df_id[0] + 2, end_row=df_id[-1] + 2, start_column=j, end_column=j) # 序号从1开始,所以行序号需要加2

    excel_name = "C:/Users/Administrator/Desktop/2.xlsx"
    wb.save(excel_name)
    # 保存writer中的数据至excel
    # 如果省略该语句,则数据不会写入到上边创建的excel文件中
    print('导入成功!')

df = pd.read_excel(r"C:\Users\Administrator\Desktop\1.xlsx",sheet_name='Sheet2')
to_merge(df)

 最终结果:

  • 4
    点赞
  • 41
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值