python xlsxwriter合并单元格

这篇博客介绍了如何在Python中使用xlsxwriter库根据特定条件动态合并Excel工作表的单元格,例如,将序号相同的行的序号和酒店列进行合并。详细代码示例展示了实现过程。
部署运行你感兴趣的模型镜像

需求描述:

在写入表格时,对符合特定条件的某些列进行合并单元格,示例:

边写入,边判断,将序号相同的行的序号、酒店列进行合并,如图:

合并后为:

具体代码实现:

import os
import xlsxwriter as xw


def xw_toExcel(data, fileName):  # xlsxwriter库储存数据到excel
    workbook = xw.Workbook(fileName)  # 创建工作簿
    worksheet1 = workbook.add_worksheet("sheet1")  # 创建子表
    worksheet1.activate()  # 激活表
    title = ['序号', '酒店', '价格']  # 设置表头
    worksheet1.write_row('A1', title)  # 从A1单元格开始写入表头
    i = 2  # 从第二行开始写入数据
    for j in range(len(data)):
        insert_data = list(data[j].values())
        row = 'A' + str(i)
        worksheet1.write_row(row, insert_data)
        if j > 0:  # 从第二行数据开始比较
            if data[j]["id"] == data[j - 1]["id"]:
                for column in range(2):  # 拿到需要合并的列
                    worksheet1.merge_range(i - 2, column, i - 1, column, insert_data[column])  # 合并单元格
        i += 1
    workbook.close()  # 关闭表


if __name__ == '__main__':
    # "-------------数据用例-------------"
    testData = [
        {"id": 1, "name": "立智", "price": 100},
        {"id": 2, "name": "维纳", "price": 200},
        {"id": 3, "name": "如家", "price": 300},
        {"id": 3, "name": "如家", "price": 400},
        {"id": 3, "name": "如家", "price": 200},
        {"id": 4, "name": "朗丽兹", "price": 500}
    ]
    fileName = os.path.join(os.path.abspath('.'), 'data_test.xlsx')
    xw_toExcel(testData, fileName)

 

您可能感兴趣的与本文相关的镜像

Python3.10

Python3.10

Conda
Python

Python 是一种高级、解释型、通用的编程语言,以其简洁易读的语法而闻名,适用于广泛的应用,包括Web开发、数据分析、人工智能和自动化脚本

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值