|
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文件。
|