在筛选后的数据中再筛选出当天日期的数据 today = now.strftime('%Y/%m/%d') filtered_data = filter(lambda x: x[2].value == today, filtered_data) # 将筛选后的数据的第9列数据复制到新的工作表2中的第一列 wb3 = openpyxl.Workbook() ws3 = wb3.active for i, row in enumerate(filtered_data): ws3.cell(row=i+1, column=1, value=row[8].value)根據這段代碼在將複製過去的數據清除重複保留唯一值
时间: 2024-03-28 11:42:04 浏览: 116
ymd.zip_ymd年月日
如果你想将复制到新工作簿的数据去除重复项,可以使用 `set()` 函数将数据转换为集合,从而去除重复项,然后将结果写入新工作簿中。以下是修改后的代码:
```python
import openpyxl
# 打开原始工作簿和工作表
wb1 = openpyxl.load_workbook('原始工作簿.xlsx')
ws1 = wb1.active
# 筛选数据
today = now.strftime('%Y/%m/%d')
filtered_data = filter(lambda x: x[2].value == today, ws1.rows)
# 创建新的工作簿和工作表
wb3 = openpyxl.Workbook()
ws3 = wb3.active
# 将筛选后的数据的第9列数据复制到新的工作表2中的第一列
values = set([row[8].value for row in filtered_data])
for i, value in enumerate(values):
ws3.cell(row=i+1, column=1, value=value)
# 保存工作簿
wb3.save('新工作簿3.xlsx')
```
首先,使用 `now.strftime('%Y/%m/%d')` 获取当天日期,并将其赋值给变量 `today`。
然后,使用 `filter()` 函数筛选出 `ws1` 中日期为当天日期的行数据,并将结果赋值给 `filtered_data`。
接着,创建一个新的工作簿 `wb3`,获取它的活动工作表 `ws3`。
然后,将筛选后的数据的第9列数据转换为集合并赋值给 `values`,使用 `set()` 函数去除重复项。
最后,使用 `for` 循环遍历去重后的所有值,并将每个值写入新工作簿wb3的第一列。
阅读全文