首页 > 编程语言 >python + xlwings 根据条件筛选Excel里的所需资料

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

时间:2024-03-24 18:34:40浏览次数:23  
标签:sht python Excel xlwings list value range max wb2

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

点击查看代码
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()

标签:sht,python,Excel,xlwings,list,value,range,max,wb2
From: https://www.cnblogs.com/qiuyublog/p/18092780

相关文章

  • BioPython模块的安装
     001、确认是否已经安装(base)[root@pc1~]#pythonPython3.11.4(main,Jul52023,14:15:25)[GCC11.2.0]onlinuxType"help","copyright","credits"or"license"formoreinformation.>>>importBioTraceback......
  • 数学建模 (线性规划 python代码 两种)
    线性规划: 线性规划(LinearProgramming,LP)是一种数学优化方法,用于解决一类特定类型的最优化问题。该问题的目标是在给定的一组线性约束条件下,找到使某个线性目标函数达到最大或最小的变量值。线性规划问题可以表示为以下标准形式:最小化(或最大化):Z=c^T*x约束条件:Ax<=b,......
  • Python编程异步爬虫——aiohttp的使用
    异步爬虫—aiohttp的使用基本介绍asyncio模块其内部实现了对TCP、UDP、SSL协议的异步操作,但是对于HTTP请求来说,就需要用aiohttp实现了。aiohttp是一个基于asyncio的异步HTTP网络模块,它既提供了服务端,又提供了客户端。requests发起的是同步网络请求,aiohttp则是异步。ai......
  • Ubuntu下安装Python虚拟环境
    安装和配置安装包管理神器pipsudoaptinstallpython-pip升级pipsudopipinstall--upgradepip安装virtualenv,virtualenvwrappersudopipinstallvirtualenvsudopipinstallvirtualenvwrapper配置virtualenvwrapper#默认的virtualenvwrapper安装在/u......
  • 最长子字符串的长度(二)【华为OD机试JAVA&Python&C++&JS题解】
    一.题目-最长子字符串的长度(二)给你一个字符串s,字符串s首尾相连成一个环形,请你在环中找出’l’、‘o’、‘x’字符都恰好出现了偶数次最长子字符串的长度。输入描述:输入是一串小写的字母组成的字符串。输出描述:输出是一个整数补充说明:1<=s.length<=5x10^5......
  • 孙悟空吃蟠桃【华为OD机试JAVA&Python&C++&JS题解】
    一.题目-孙悟空吃蟠桃孙悟空爱吃蟠桃,有一天趁着蟠桃园守卫不在来偷吃。已知蟠桃园有N颗桃树,每颗树上都有桃子,守卫将在H小时后回来。孙悟空可以决定他吃蟠桃的速度K(个/小时),每个小时选一颗桃树,并从树上吃掉K个,如果树上的桃子少于K个,则全部吃掉,并且这一小时剩余的时间里不再......
  • 【锂电池SOC估计】【PyTorch】基于Basisformer时间序列锂离子电池SOC预测研究(python代
     ......
  • [Python]-基础-1.环境部署
    [Python]基础——环境部署&知识补充一、环境部署1.1软件下载1.1.1版本选择内置函数是Python自带的函数,不同版本的Python,其内置函数在数量和使用上大不相同,尤其是Python2和Python3大版本之间的迭代,教程全程采用Python3.8.3进行代码演示,为了避免版本兼容冲突,希望......
  • python每日可视化分析:从过去到现代数据分析的演进
    分析目标本文旨在探索数据分析发展历程中的关键时刻,包括重要人物的贡献和大事件的发生。通过对比不同年代的数据分析技术和方法,我们可以更好地理解数据分析如何成为今天决策制定不可或缺的一部分。分析步骤收集数据:搜集关于数据分析历史上重要人物和事件的信息。数据与可......
  • Arrow,一个超神奇的python库
    From: https://mp.weixin.qq.com/s/A3oa1tt2ef7p0MzLQQPp4A--------------------------------------------------------------------------------------https://github.com/arrow-py/arrow什么是Arrow?Arrow是一个Python的时间处理库,它提供了更加简单、清晰的方式来创建、操作......