如何利用Python让Excel快速按条件筛选数据
本文即使用python实现excel快速筛选数据
(资料图片仅供参考)
有一张 12 个月份的产品销售情况表。
安装所需的 Python 第三方库
xlwings 的特色:
xlwings 能够非常方便地读写 Excel 文件中的数据,并且能够进行单元格格式的修改可以和 Matplotlib 以及 Pandas 无缝连接可以调用 Excel 文件中 VBA 写好的程序,也可以让 VBA 调用用 Python 写的程序开源免费,一直在更新导入 xlwings:
import xlwings as xw
通过 Python 启动 Excel 文件
1.打开 Excel 程序
app =xw.App(visible=True,add_book=False)
其中参数 visible(表示处理过程是否可视,也就是处理 Excel 的过程会不会显示出来),add_book(是否打开新的 Excel 程序,也就是是不是打开一个新的 excel 窗口)。
2.打开 Excel 文件
workbook = app.books.open("2020 XX 公司销售表汇总表.xlsx")
3.获取所有的表格
sheets_list = workbook.sheets
4.设置筛选条件
select_value = "江西省" select_value1 = "博士"
5.新增 Sheet 存在筛选数据
qxs_excel = workbook.sheets.add(select_value)
自定义 Python 遍历 Excel 的函数
1.新建数据列表,将数据添加到列表中
range_value_list = []
2,。自定义单一 Sheet 数据读取类
def readrange(excel): for i in range(2,1000): #我的数据每张 Sheet 表最多只有 1000 行,所以设置的是 1000 #单个表格字符串 select_sheet_value = "E"+str(i) select_sheet_value1 = "C"+str(i) #整行表格字符串 str_sheet1 = "A"+str(i)+":"+"E"+str(i) select_value_sheet = excel.range(select_sheet_value).value select_value_sheet1 = excel.range(select_sheet_value1).value if select_value_sheet == select_value and select_value_sheet1 == select_value1:#这里设置搜索条件判断,这里是表示两个筛选条件同时满足才会存入数据列表 str_value_row = excel.range(str_sheet1).value range_value_list.append(str_value_row) for excel in sheets_list: readrange(excel)
将数据写入新的汇总表里
1.首先写入标题数据
qxs_excel.range("A1:F1").value = ["姓名","级别","学历","薪资","地址"]
2.循环写入数据列表数据到汇总表中
flag = 1 #因为计算机从 0 开始,0 行已经写入标题,所以这里是 1;如果有多行标题,根据实际情况设置 for i in range_value_list: flag += 1 #整行表格字符串 str_sheet1 = "A"+str(flag)+":"+"E"+str(flag) qxs_excel.range(str_sheet1).value = i
运行之后的效果如下:
总结
到此这篇关于如何利用Python让Excel快速按条件筛选数据的文章就介绍到这了,更多相关PythonExcel快速按条件筛选数据内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
X 关闭
X 关闭
- 15G资费不大降!三大运营商谁提供的5G网速最快?中国信通院给出答案
- 2联想拯救者Y70发布最新预告:售价2970元起 迄今最便宜的骁龙8+旗舰
- 3亚马逊开始大规模推广掌纹支付技术 顾客可使用“挥手付”结账
- 4现代和起亚上半年出口20万辆新能源汽车同比增长30.6%
- 5如何让居民5分钟使用到各种设施?沙特“线性城市”来了
- 6AMD实现连续8个季度的增长 季度营收首次突破60亿美元利润更是翻倍
- 7转转集团发布2022年二季度手机行情报告:二手市场“飘香”
- 8充电宝100Wh等于多少毫安?铁路旅客禁止、限制携带和托运物品目录
- 9好消息!京东与腾讯续签三年战略合作协议 加强技术创新与供应链服务
- 10名创优品拟通过香港IPO全球发售4100万股 全球发售所得款项有什么用处?