学习笔记:将第一列和第二列合适的单元格合并

语言:Python 3.7

学习时间:4天

适用工作:将第一列和第二列合适的单元格合并

参考文档:https://www.jb51.net/article/137775.htm

# -*- coding: utf-8 -*-
"""
Created on Fri Aug  9 10:55:18 2019
@author: zbliuA
"""
import openpyxl
from os import listdir
for fn in (fns for fns in listdir() if fns.endswith('.xlsx')):
    wbResult = openpyxl.load_workbook(fn)
    wsResult = wbResult.worksheets[0]
    #结果文件中所有行,前面加一个空串,方便索引
    rows = [''] + list(wsResult.rows)
    index1 = 2
    rowCount = len(rows)
    #处理结果文件,合并第一列中合适的单元格
    while index1 < rowCount:
        value = rows[index1][0].value
        #如果当前单元格没有内容,或者与前面的内容相同,就合并
        for index2,row2 in enumerate(rows[index1+1:],index1+1):
            if not (row2[0].value == None or row2[0].value==value):
                break
        else:
            #已到文件尾,合并单元格
            wsResult.merge_cells('A'+str(index1)+':A'+str(index2))
            break
        #未到文件尾,合并单元格
        wsResult.merge_cells('A'+str(index1)+":A"+str(index2-1))
        index1= index2
    index1 = 2
    while index1 < rowCount:
        value = rows[index1][1].value
        #如果当前单元格没有内容,或者与前面的内容相同,就合并
        for index2,row2 in enumerate(rows[index1+1:],index1+1):
            if not (row2[1].value == None or row2[1].value==value):
                break
        else:
            #已到文件尾,合并单元格
            wsResult.merge_cells('B'+str(index1)+':B'+str(index2))
            break
        #未到文件尾,合并单元格
        wsResult.merge_cells('B'+str(index1)+":B"+str(index2-1))
        index1= index2
    #保存结果文件
    wbResult.save(fn)
print("It works!")
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。