RubyXL:如何在XLSX中将单元格制作为下拉列表

时间:2019-06-24 11:57:02

标签: rubyxl

我正在使用RubyXL gem读写一个xlsm文件。在我的项目中有一个Country字段,该字段应显示xlsm下拉列表中的所有国家列表。我曾尝试过DataValidation,但是当我尝试打开文件时它显示为“我们在filename.xlsm中发现某些内容有问题。您想尝试我们尽可能多地进行恢复吗?”如果我单击“是”,则该单元格上没有显示下拉列表。我的代码如下。

workbook = RubyXL::Parser.parse(dest_file_path)
worksheet1 = workbook["Form"]
content = ['Afghanistan','Albania,'Algeria']
formula = RubyXL::Formula.new(expression: content)
loc = RubyXL::Reference.new(1, 1048000, 2, 2)
worksheet1.data_validations = 
RubyXL::DataValidation.new(prompt_title: nil, prompt: nil,
sqref: loc, formula1: formula,
type: 'list', show_input_message: true,
show_drop_down: true)

我应该如何将DataValidation关联到特定的工作表?我还有其他方法可以做到吗?谁能帮忙。

1 个答案:

答案 0 :(得分:0)

RubyXL数据验证是集合,将您的数据验证括在方括号中应适当地添加数据验证到工作表1

workbook = RubyXL::Parser.parse(dest_file_path)
worksheet1 = workbook["Form"]
content = ['Afghanistan','Albania,'Algeria']
formula = RubyXL::Formula.new(expression: content)
loc = RubyXL::Reference.new(1, 1048000, 2, 2)
worksheet1.data_validations = [
RubyXL::DataValidation.new(prompt_title: nil, prompt: nil,
sqref: loc, formula1: formula,
type: 'list', show_input_message: true,
show_drop_down: true)]