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

Som*_*esh 7 python xlrd excel-formula xlwt xlsxwriter

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

例如,如果给定一个单元格 options = [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()
Run Code Online (Sandbox Code Playgroud)

这是取自文档的示例xlsxwriter

我浏览了其他库,例如xlrdxlwtPyXLL其他一些库,但找不到任何可以支持多选或提供解决方法来实现相同目的的东西。

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

任何帮助将非常感激。

JB-*_*007 0

这里/截图参考:

几个相当相似的问题(下面的链接) - 但不完全一样。


方法 AC 前提条件:Office 365 兼容版本的 Excel

A - 按“原始/原始顺序”返回重复项*

=TEXTJOIN(",",1,C4:C23)
Run Code Online (Sandbox Code Playgroud)

方法A

B - 与 A 相同,但已订购*

=TEXTJOIN(",",1,SORT(C4:C23))
Run Code Online (Sandbox Code Playgroud)

方法 B - 订购

C - 与 B 相同但独特*

=UNIQUE(TEXTJOIN(",",1,UNIQUE(SORT(C4:C23))))
Run Code Online (Sandbox Code Playgroud)

方法C——唯一、排序


方法D

其他版本的 Excel - 可以找到有效的方法来设置输入最终解决方案的大量验证列表...

方法 D:旧版 Excel

=转置(连接(C4&",",C5&",",C6&",",C7&",",C8&",",C9&",",C10&",",C11&",",C12&",", C13&",",C14&",",C15&",",C16&",",C17&",",C18&",",C19&",",C20&",",C21&",",C22&",", C23))


资源(个人档案回复:我之前的一些贡献):

  1. 您的假设各个下拉菜单(与“最终结果单元格”相反)是独立的 -不是。
  2. 也是同样的情况,尽管复杂性更大。
  3. 示例演示如何组合多个数值(例如求和)
  4. 类似的例子在这里
  5. 如上所述,尽管有额外的怪癖/奇怪的依赖和单独的操作 - 希望这有帮助,祝你好运