【使用python将excel文件按照列分类拆分为若干个文件】

最近有一个需求,需要把一个ECXLE文件的列找分类后的拆分为若干个EXCEL文件。

本来是帮助同事做的,其实也不难,主要是库不熟悉。。

下面上干货。。
首先:你要openpyxl和pywebio两个库,我用的pycharm,直接在市场里就可以下载了。。
没有的话可以通过下面命令安装。

pip install openpyxl
pip install pywebio

下面思路就不多说了。。
直接上代码。。

from openpyxl import load_workbook
from pywebio.input import *


# 定义全局变量
col = input("请输入要拆分的列")
file_name = file_upload("请选择要拆分的文件")


def get_list():
    """filename:str
    该模块的主要功能是把文件中的列筛选出来,并且去重,返回列表。"""
    wb = load_workbook(file_name["filename"]).active
    list_value = []
    num = 1
    for cell in wb[col]:
        if num == 1:
            num += 1
            continue
        list_value.append(cell.value)
    list_value = list(set(list_value))
    # print(len(list_value))
    return list_value


def main():
"""主要逻辑实现
   通过读取文件的值和查找对应表哥的值是否一致,决定是否要删除,这样做的好处是文件源哥是不会变哦。"""
    list_values = get_list()
    for name in list_values:
        wb = load_workbook(filename=file_name["filename"])
        wb_sheet = wb.active
        print("查找值为{}的单元格".format(name))
        a = 1
        wb_lie = wb_sheet[col]
        for cell in wb_lie:
            print("开始判断{}".format(cell.value))
            if a == 1:
                a += 1
                continue
            if cell.value != name:
                wb_sheet.delete_rows(idx=cell.row)
                print("查找值{0}和单元格值{1}不匹配不,删除该行".format(name, cell.value))
        wb.save(name+".xlsx")


if __name__ == '__main__':
    main()

你可能感兴趣的:(python,分类,pycharm)