python初学者,想用openpyxl实现每列相同单元格自动合并,未果,请问问题出在哪儿,谢谢

发布于 2022-09-13 00:15:29 字数 1318 浏览 22 评论 0

mport openpyxl
from openpyxl import load_workbook
from openpyxl.utils import get_column_letter, column_index_from_string
 
"""合并单元格"""
result_file = "E:\合并测试\合并1.xlsx"
wb = load_workbook(result_file)
ws = wb.get_sheet_by_name('Sheet1')
 
# 获取第一行数据
hang_list = []
j = 1
while True:
    l = ws.cell(1, j).value
    if l:
        hang_list.append(l)
    else:
        break
    j += 1


for j in range(len(hang_list)):
    print(j)
    type_list = []
    m=get_column_letter(j+1)
    flag=0
    print(m)
    # 获取第一列数据
    for i in range(2,len(type_list)):
        r = ws.cell(i, j+1).value
        if r:
            type_list.append(r)
        else:
            flag=1
            break
        i += 1  
    print(type_list)
    # 判断合并单元格的始末位置
    s = 0
    e = 0
    if flag==0:
        flag = type_list[0]
        print(flag)
        for i in range(len(type_list)):
            if type_list[i] != flag:
                flag = type_list[i]
                e = i - 1
                if e >= s:
                    ws.merge_cells(m+ str(s + 2) + ":"+m+ str(e + 2))
                    s = e + 1
                if i == len(type_list) - 1:
                    e = i
                    ws.merge_cells(m + str(s + 2) + ":"+m + str(e + 2))
    else:
        break
wb.save('合并.xlsx')

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文