excel数据按某列分类并新建sheet类工作表

按照负责人进行分类 

 

实现以后的效果 

 代码如下

import openpyxl
import time


def data_class(sheet, table2, des_file):
    """ 读取sheet内容按照负责人分类并创建写入sheet表
    :param sheet: sheet表
    :type sheet: 字符串或者sheet对象

    :param table2: 创建的excel表类对象
    :type table2: 对象

    :param des_file: 分类完成保存的excel表文件
    :type table2: 字符串
    """
    for row in sheet.values:
        # print(row)
        # print(list(sheet.values)[0])
        if row[1] == "负责人":
            pass
        elif row[1] is None:
            try:
                sheet1 = table2["负责人为空"]
                print("None---try")
            except Exception:
                print("None---except")
                sheet1 = table2.create_sheet("负责人为空")
                sheet1.append(list(sheet.values)[0])
            finally:
                sheet1 = table2["负责人为空"]
                sheet1.append(list(row))
        else:
            try:
                sheet1 = table2[row[1]]
                print("负责人---try")
            except KeyError:
                print("负责人---except")
                sheet1 = table2.create_sheet(row[1])
                sheet1.append(list(sheet.values)[0])
            finally:
                sheet1 = table2[row[1]]
                sheet1.append(list(row))
    table2.save(des_file)


def main(src_file, des_file):
    """数据结果处理
    :param src_file: 源文件
    :type src_file: 字符串或文件对象

    :param des_file: 目标文件
    :type des_file: 字符串或文件对象
    """
    table = openpyxl.load_workbook(src_file)
    table2 = openpyxl.Workbook()
    sheet1 = table2.active
    sheet1.title = "负责人为空"
    sheet1.append(list(list(table)[0].values)[0])
    for sheet in table:
        print(sheet)
        data_class(sheet, table2, des_file)
    return des_file


if __name__ == "__main__":
    src_file = "./excel_data/test.xlsx"
    tt = time.strftime('%Y%m%d%H%M%S', time.localtime(time.time()))
    des_file = f"./excel_data/{tt}-test.xlsx"
    main(src_file, des_file)

参考:python对excel表格数据进行分类处理!!!(图文并茂详细版!!!) - 百度文库

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值