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