Python excel 下拉过滤器不适用于 openpyxl 或 xlsxwriter

Python excel drop down filter not working with openpyxl nor with xlsxwriter

我在 xlsxwriter 工作,运行 遇到了创建下拉列表的问题。数据验证没有出现,即使我确信我已经掌握了代码的要点。我开始于:

def english_fluency(pd_df, source):
"""data validation for english fluency"""
    writer = pd.ExcelWriter(source, engine='xlsxwriter')
    pd_df.to_excel(writer, sheet_name='Verification', index=False)
    workbook = writer.book
    worksheet = writer.sheets['Verification']
    worksheet.data_validation('E2', {'validate': 'list',
                                    'source': [' ', '1', '2',
                                               '3', '4']})
    workbook.save()
    workbook.close()

因为我觉得我把 运行 塞进了墙里,所以我决定切换到 openpyxl 以尝试更简洁地完成同样的事情:

def english_fluency_dv(ws):
    """data validation for english fluency"""
    dv_ef = DataValidation(type="list", formula1='"1,2,3,4"', allow_blank=True, showDropDown=True)
    ws.add_data_validation(dv_ef)
    return ws

我仍然看不到数据验证下拉菜单,可能是我遗漏了什么或者把它放在了 excel sheet 的错误区域?

您在错误的库中使用了正确的代码。此代码使用 xlsxwriter 向单元格 E2 添加验证:

import xlsxwriter

workbook = xlsxwriter.Workbook('ValList.xlsx')  # open\create workbook
ws = workbook.add_worksheet('Verification')  # new sheet

# add validation list
ws.data_validation('E2', {'validate': 'list',
                          'source': [' ', '1', '2', '3', '4']})

ws.write("E2", '2')  # set cell value

workbook.close()  # save & close