使用Python openpyxl 筛选Excel中关键字出错 您所在的位置:网站首页 python中worksheets 使用Python openpyxl 筛选Excel中关键字出错

使用Python openpyxl 筛选Excel中关键字出错

2023-03-11 14:24| 来源: 网络整理| 查看: 265

问题描述:我想利用openpyxl帮忙自动筛选出表格的属于B3,且在当月离职的员工的信息,并形成新的表格。但在运行时报错,无法识别“B3”,请教各位指点下,万分感谢!!

代码如下:import openpyxlfrom openpyxl.worksheet.filters import FilterColumn, CustomFilter

打开名为“Multek人员信息”的Excel文件

wb = openpyxl.load_workbook("C:\Users\Jake\Desktop\Multek人员信息.xlsx")

打开名为“离职”的工作簿

ws = wb["离职"]

获取当前月份

from datetime import datetimecurrent_month = datetime.now().month

筛选出“Building”列中所有属于“B3”,再在筛选的数据中“离职日期”列中筛选出当前月份

ws.auto_filter.ref = "A1:DH4193"ws.auto_filter.add_filter_column(7, CustomFilter(operator="equal", val="BT"))ws.auto_filter.add_filter_column(109, CustomFilter(operator="equal", val=current_month))

创建一个新的Excel文件,命名为“X月具体名单”

new_wb = openpyxl.Workbook()new_ws = new_wb.activenew_ws.title = f"{current_month}月具体名单"

把筛选后的信息从“工号”至“部门组”、“入职日期”、“员工级别”、“离职日期”这些列复制进新的Excel中

for row in ws.iter_rows(min_row=1, min_col=1): if row[0].row == 1 or row[0].value: # 如果是第一行或者有值(说明通过了筛选) new_ws.append([cell.value for cell in row]) # 把整行的值添加到新的工作簿中

保存新的Excel文件到桌面

new_wb.save(f"C:\Users\Jake\Desktop\{current_month}月具体名单.xlsx")

#运行后会报错,显示单元格中“B3”不符合格式?报错如下:D:\Python\openpyxl\worksheet_reader.py:223: UserWarning: Cell CU200 is marked as a date but the serial value 13680161956 is outside the limits for dates. The cell will be treated as an error. warn(msg)Traceback (most recent call last): File "D:\python_work\test_2.py", line 15, in ws.auto_filter.add_filter_column(7, CustomFilter(operator="equal", val="BT")) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "D:\Python\openpyxl\worksheet\filters.py", line 184, in init self.val = val ^^^^^^^^ File "D:\Python\openpyxl\worksheet\filters.py", line 165, in set raise ValueError("Value must be either numerical or a string containing a wildcard")ValueError: Value must be either numerical or a string containing a wildcard请教各位帮帮忙,万分感谢



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有