python - 使用python在excel中的单元格的多选选项

标签 python excel-formula xlrd xlwt xlsxwriter

我想创建一个excel,它应该有带有多选下拉菜单的单元格。

例如如果给一个单元格选项 = [a", "b", "c", "d", "e"]。
编辑器选择“a”,则单元格中的值应为“a”。在对同一单元格的后续选择中,如果编辑器选择“b”,则该单元格中的最终值应为“a,b”。

我可以使用 xlsxwriter 创建下拉列表使用以下示例代码打包。但它不支持多选。

import xlsxwriter

workbook = xlsxwriter.Workbook('data_validate.xlsx')
worksheet = workbook.add_worksheet()

worksheet.write('A13', txt)
worksheet.data_validation('B13', {'validate':'list',
                                'source': ['open', "high", 'close']})

workbook.close()

这是取自 xlsxwriter 的示例文档。

我浏览了其他图书馆,例如 xlrd , xlwt , PyXLL和其他一些,但找不到任何可以支持多选或提供解决方法来实现相同的东西。

是否有任何内置库,或在 excel 中实现此目的的方法。
我不想使用任何 windows 和 VB 依赖项。

任何帮助将非常感激。

最佳答案

Here/screenshot(s) 引用:
几个相当相似的问题(下面的链接)——但不完全是。

方法 A-C
先决条件:Office 365 兼容版本的 Excel
一个 - 以“原始/原始顺序*”返回重复项

=TEXTJOIN(",",1,C4:C23)
Method A
-至于A,但已订购*
=TEXTJOIN(",",1,SORT(C4:C23))
Method B - ordered
C - 至于 B 但独特的*
=UNIQUE(TEXTJOIN(",",1,UNIQUE(SORT(C4:C23))))
Method C - unique, sort

方法 D
其他版本的 Excel - 可以找到有效的方法来设置输入最终解决方案的大量验证列表...
Method D: older Excel versions
=TRANSPOSE(CONCATENATE(C4&",",C5&",",C6&",",C7&",",C8&",",C9&",",C10&",",C11&",",C12&",", C13&",",C14&",",C15&",",C16&",",C17&",",C18&",",C19&",",C20&",",C21&",",C22&",", C23))

资源 (个人文件 RE:我以前的一些贡献):
  • 您的假设单个下拉菜单(与“最终结果单元格”相反)是独立的 - this 不是。
  • 同样适用于 this ,尽管具有更大的复杂性。
  • This示例演示了如何组合多个数值(例如求和)
  • 类似示例 here
  • 如上所述,尽管额外的怪癖/怪癖重新依赖和单独的操作 - 跳这有帮助,祝您好运
  • 关于python - 使用python在excel中的单元格的多选选项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36401617/

    相关文章:

    Python 对 >= 10,000 的数字进行列表比较的效率

    excel - 重命名excel中的重复项(在一个组中)

    excel - 在 Excel 中比较两个具有相同行但顺序不完全相同的不同表

    python - xlrd 模块可以更改文件属性吗?

    python - 你如何在 Appengine 上使用 xlrd 读取 excel 文件

    python - 用 pandas 读取 Excel XML .xls 文件

    python - 如何在 ssh 中创建 Django super 用户?

    python - 如何在虚拟环境中运行 Airflow PythonOperator

    python - 使用 BeautifulSoup 检查是否存在没有值的属性

    Excel公式创建两个日期之间的年份范围