0

我正在使用 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 关联到特定的工作表?我还有其他方法可以做到这一点吗?谁能帮忙。

4

1 回答 1

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)]
于 2019-12-20T16:18:38.783 回答