| 
 | 
 
50鱼币 
- from openpyxl import Workbook
 
  
- wb = Workbook()
 
 - ws = wb.active
 
  
- data = [
 
 -     ["Fruit", "Quantity"],
 
 -     ["Kiwi", 3],
 
 -     ["Grape", 15],
 
 -     ["Apple", 3],
 
 -     ["Peach", 3],
 
 -     ["Pomegranate", 3],
 
 -     ["Pear", 3],
 
 -     ["Tangerine", 3],
 
 -     ["Blueberry", 3],
 
 -     ["Mango", 3],
 
 -     ["Watermelon", 3],
 
 -     ["Blackberry", 3],
 
 -     ["Orange", 3],
 
 -     ["Raspberry", 3],
 
 -     ["Banana", 3]
 
 - ]
 
  
- for r in data:
 
 -     ws.append(r)
 
  
- ws.auto_filter.ref = "A1:B15"
 
 - ws.auto_filter.add_filter_column(0, ["Kiwi", "Apple", "Mango"])
 
  
- wb.save("filtered.xlsx")
 
  复制代码 
 
这是官方的一段代码,官方文档也说了这段代码实现效果是:”这将向文件添加相关说明,但既不过滤也不排序“,那么问题来了,他不给我筛选结果我又如何提取出筛选后的数据呢? 
我最终目的是要先进行筛选,然后复制筛选后的数据到另一个工作表中。
你可以通过以下方法在使用openpyxl模块时筛选并提取数据: 
 
首先,我们需要在原工作表上应用筛选条件。然后,我们可以遍历工作表的所有行,检查每行是否满足筛选条件。如果满足条件,我们将该行添加到新的工作表中。 
 
下面是一个示例代码: 
 
- from openpyxl import Workbook
 
  
- # 创建一个新的工作簿
 
 - wb = Workbook()
 
  
- # 获取当前活动的工作表
 
 - ws = wb.active
 
  
- # 向工作表中添加数据
 
 - data = [
 
 -     ["Fruit", "Quantity"],
 
 -     ["Kiwi", 3],
 
 -     ["Grape", 15],
 
 -     ["Apple", 3],
 
 -     ["Peach", 3],
 
 -     ["Pomegranate", 3],
 
 -     ["Pear", 3],
 
 -     ["Tangerine", 3],
 
 -     ["Blueberry", 3],
 
 -     ["Mango", 3],
 
 -     ["Watermelon", 3],
 
 -     ["Blackberry", 3],
 
 -     ["Orange", 3],
 
 -     ["Raspberry", 3],
 
 -     ["Banana", 3]
 
 - ]
 
  
- for r in data:
 
 -     ws.append(r)
 
  
- # 定义筛选条件
 
 - filter_conditions = ["Kiwi", "Apple", "Mango"]
 
  
- # 创建一个新的工作表用于存储筛选后的数据
 
 - ws_filtered = wb.create_sheet("Filtered Data")
 
  
- # 遍历原始工作表的所有行,检查每行是否满足筛选条件
 
 - for row in ws.iter_rows(min_row=2):
 
 -     fruit = row[0].value
 
 -     if fruit in filter_conditions:
 
 -         ws_filtered.append([cell.value for cell in row])
 
  
- # 保存工作簿
 
 - wb.save("filtered.xlsx")
 
 
  复制代码 
 
这段代码首先创建一个新的工作表,然后遍历原始工作表的所有行。如果行满足筛选条件,它将被添加到新的工作表中。最后,工作簿被保存为filtered.xlsx文件。 
 
 
 |   
 
 
最佳答案
查看完整内容 
你可以通过以下方法在使用openpyxl模块时筛选并提取数据:
首先,我们需要在原工作表上应用筛选条件。然后,我们可以遍历工作表的所有行,检查每行是否满足筛选条件。如果满足条件,我们将该行添加到新的工作表中。
下面是一个示例代码:
这段代码首先创建一个新的工作表,然后遍历原始工作表的所有行。如果行满足筛选条件,它将被添加到新的工作表中。最后,工作簿被保存为filtered.xlsx文件。 
 
 
 
 
 
 
 |