Seb*_*ian 4 python python-2.7 xlsxwriter
所以我正在创建一个包含某些数据的电子表格。电子表格中的某些单元格需要有一个包含预定义数据的下拉列表。对于某些细胞来说,这个过程非常简单:
worksheet.data_validation(start_row, start_column, end_row, end_column, {'validate': 'list', 'source': options }
Run Code Online (Sandbox Code Playgroud)
其中 options 是项目列表。
事实证明,这个项目列表被转换为字符串,如果字符串超过 255 个字符,那么(由于 Excel 限制)不可能创建下拉列表。
由于不同的单元格可能有不同的选项,我正在检查选项的长度(转换为字符串)是否 >= 255,如果是,那么我将创建一个新工作表并在那里记下选项。
def create_options_sheet(self, name, values):
options_worksheet = self.workbook.add_worksheet(name)
opt_col = 0
opt_row = 0
for elem in values:
options_worksheet.write(opt_row, opt_col, elem)
opt_row += 1
Run Code Online (Sandbox Code Playgroud)
因此,我计划采用与此类似的方法从当前工作表访问这些选项:
current_worksheet.data_validation(start_row, start_column, end_row, end_column, {'validate': 'list', 'source': options_sheet})
Run Code Online (Sandbox Code Playgroud)
其中 options_sheet 是对选项表的引用,使用类似 =$A$1:$A$10 的范围。我的问题是:如何加载该工作表并从当前工作表访问它?
好吧,我明白了!由于我可以访问包含选项的不同电子表格的名称,因此我可以执行以下操作:
sheet_reference_str = '=' + sheet_name + '!$A$1:$A$10'
current_worksheet.data_validation(start_row, start_column, last_row, last_column, {'validate': 'list', 'source': sheet_reference_str})
Run Code Online (Sandbox Code Playgroud)
给定的范围仅作为示例来说明其工作原理
归档时间: |
|
查看次数: |
5513 次 |
最近记录: |