python + xlwings 根据条件筛选Excel里的所需资料

实际有用,有效,满足我的个人需要。

点击查看代码
import xlwings as xw

def filer():
    try:
        app = xw.App(visible=False, add_book=False)
        app2 = xw.App(visible=False, add_book=True)
        wb = app.books.open('new_file.xlsx') # 打开原始数据表
        sht = wb.sheets[0]    #获取第一个sheet
        wb2 = app2.books.add() # 新建工作簿
    
        #获取源工作表最大单元格
        cell = sht.used_range.last_cell
        max_col = cell.column
        max_rows = cell.row
        
    
        #取得全部原始数据
        data_list = sht.range((3,1),(max_rows,max_col)).value
    
        #获取循环的列表,进行去重
        _list = sht.range((2,3),(max_rows,3)).value
        _list = list(dict.fromkeys(_list))
    
        #循环列表处理数据
        for item in _list:
            # 如果是相关数据,则放在新的工作表里
            # 在wb2中创建新的工作表
            sht_new = wb2.sheets.add(item)
            # 复制原始数据第一行到新的sheet
            sht_new.range('A1:AH1').value = sht.range('A1:AH1' ).value
            
            print('新建工作表:'+ item)
            x = 1
            for i in data_list:
                if i[2] == item:  #i作为列表 i[0]表示第一列
                    # 将符合条件的数据写入新的工作表
                    x = x + 1
                    sht_new.range((x,1),(x,6)).value = i
        #保存新工作簿
        wb2.save(r'plan_data.xlsx')
        print('保存新工作簿成功!')
    except Exception as e:
        print(e)
    finally:
        wb.close()
        wb2.close()
        app.kill()
        app2.kill()

filer()
posted @   暮夜秋雨  阅读(216)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)
点击右上角即可分享
微信分享提示