【python练习】 xlwt 操作excel 写入list数据并考虑合并单元格

今天练习一个小案例,将列表数据写入excel  

要达到的效果,没有考虑到样式


数据定义:

表头 ['部门','姓名','联系方式','入职时间','地址']
内容
[          ["测试部",'小王',15933333333,'2016-02-09',"四川,成都"],
           ["测试部",'小张',15933333334,'2017-02-09','四川,雅安'],
           ["测试部",'小李',15933333335,'2015-02-09','双流'],
           ["开发部",'小熊1',15933333336,'2012-02-09','华阳'],
           ["开发部",'小熊2',15933333337,'2014-12-31','华阳'],
           ["市场部",'小熊3',15933333338,'2014-02-09','华阳']
           ]
 
  
练习代码:
考虑不知道测试部,开发部或其他部门有多少人,根据先取出值放到列表循环来读取写入
 
  
def write_excel():
    '''
    第二种方式,自动判断需要合并的单元格范围
    :return:
    '''
    table_head = ['部门','姓名','联系方式','入职时间','地址']
    content = [["测试部",'小王',15933333333,'2016-02-09',"四川,成都"],
               ["测试部",'小张',15933333334,'2017-02-09','四川,雅安'],
               ["测试部",'小李',15933333335,'2015-02-09','双流'],
               ["开发部",'小熊1',15933333336,'2012-02-09','华阳'],
               ["开发部",'小熊2',15933333337,'2014-12-31','华阳'],
               ["市场部",'小熊3',15933333338,'2014-02-09','华阳']
               ]
    # 初始化workbook 并且添加excel Sheet
    workbook = xlwt.Workbook(encoding = 'utf-8')
    xlsheet = workbook.add_sheet("excel写入练习",cell_overwrite_ok=True)

    #写excel表头
    headlen = len(table_head)
    for i in range(headlen):
        xlsheet.write(0,i,table_head[i],set_style('Times New Roman',200))


    contentRow = len(content) #列表元素个数  = 待写入内容行数

    #从content获取要写入的第一列的内容,存入列表
    first_col = []
    for i in range(contentRow):
        first_col.append(content[i][0])
    print("first_col",first_col)

    #去掉列表中重复元素,并且顺序不变
    nfirst_col = list(set(first_col))
    nfirst_col.sort(key=first_col.index) # sort排序与原顺序一致
    print("nfirst_col",nfirst_col)


    row = 1
    for i in nfirst_col:
        count = first_col.count(i)  # 计算元素的重复个数,比如测试 :3
        uprange = row+count-1  #合并范围后的上行数
        xlsheet.write_merge(row,uprange,0,0,i)  #合并单元格写入内容
        row = uprange+1 #从下一行开始写入

    #获取content子列表第二个元素,循环写入excel第2列到最后开始的数据
    for row in range(contentRow):
        for col in range(1,len(content[row])):
            xlsheet.write(row+1,col,content[row][col])

    workbook.save(r'E:\excel合并写入.xls')



你可能感兴趣的:(python)