【发布时间】:2016-07-23 22:24:15
【问题描述】:
我想创建一个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()
这是来自xlsxwriter 文档的示例。
我浏览了其他库,例如 xlrd、xlwt、PyXLL 和其他一些库,但找不到任何可以支持多选或提供解决方法来实现相同功能的东西。
是否有任何内置库或在 excel 中实现此目的的方法。 我不想使用任何 windows 和 VB 依赖项。
任何帮助将不胜感激。
【问题讨论】:
-
退后一步:您想要在 Excel 中实际执行的操作是否可行?如果不是,那么针对 Excel 文件格式的 Python 模块将无法实现。
-
嗨 jmcnamara,在 Excel 中是可能的。 trumpexcel.com/2013/11/…供参考。
-
Somesh:该解决方案使用 VBA,所以我想说虽然它在技术上是可行的,但不是标准的 Excel 功能。 XlsxWriter 和 OpenPyXL 都支持一些基本的 VBA 功能,但不支持将 VBA 宏添加到数据验证的下拉对话框中。除了 Windows 上的 VBA 自动化(你说你不想使用),我认为目前没有非 Window/Mac Python 自动化模块可以做到这一点。
-
您好 jmcnamara:非常感谢您的意见。我真的很感激。
-
我假设您不希望下拉菜单显示 ["a,a", "a,b", "a,c", "a,d", "a, e"] 选择“a”后?
标签: python excel-formula xlrd xlwt xlsxwriter