Rya*_*mes 2 ruby excel axlsx dropdown
wb.add_worksheet(name: 'Report') do |sheet|
sheet.add_data_validation("D25", {
:type => :list,
:formula1 => 'list!D11:D17',
:showDropDown => false,
:showInputMessage => true,
:promptTitle => 'blah blah',
:prompt => 'Please select a valid blah'
})
end
Run Code Online (Sandbox Code Playgroud)
我不知道如何填充下拉列表。该模板显示了一个插入符号,它告诉我它知道我希望这是一个下拉菜单。
您可以formula1 => 'list!D11:D17'参考另一个名为 的工作表list。
如果您仅引用,D11:D17则会从所选区域获取值:
require 'axlsx'
Axlsx::Package.new do |p|
wb = p.workbook
wb.add_worksheet(name: 'Report') do |sheet|
sheet.add_data_validation("A10", {
:type => :list,
:formula1 => 'A1:A9',
:showDropDown => false,
:showInputMessage => true,
:promptTitle => 'blah blah',
:prompt => 'Please select a valid blah'
})
end
p.serialize('simple.xlsx')
puts "Wrote simple.xlsx"
end
Run Code Online (Sandbox Code Playgroud)
您可以使用您的list!-reference,但是您必须命名您的工作表list。
例子:
require 'axlsx'
Axlsx::Package.new do |p|
wb = p.workbook
wb.add_worksheet(name: 'list') do |sheet|
1.upto(10){|i| sheet.add_row([i])}
end
wb.add_worksheet(name: 'Report') do |sheet|
sheet.add_data_validation("A1", {
:type => :list,
:formula1 => 'list!A1:A9',
:showDropDown => false,
:showInputMessage => true,
:promptTitle => 'blah blah',
:prompt => 'Please select a valid blah'
})
end
p.serialize('simple.xlsx')
puts "Wrote simple.xlsx"
end
Run Code Online (Sandbox Code Playgroud)