【问题标题】:Axlsx Gem:Ruby - Creating A dropdownAxlsx Gem:Ruby - 创建一个下拉列表
【发布时间】:2016-02-02 18:25:42
【问题描述】:
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

我不知道如何填充下拉列表。该模板显示了一个插入符号,它告诉我它知道我希望这是一个下拉菜单。

【问题讨论】:

  • 要输入代码示例,您可以使用 4 个空格。我在您的代码中添加了end,但如果您提供一个完整的最小工作示例就可以了。

标签: ruby excel dropdown axlsx


【解决方案1】:

使用您的 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

您可以使用您的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

【讨论】:

  • 谢谢@knut。如果我需要下拉列表中的自定义文本字符串列表怎么办?未存储在任何工作表中的文本字符串。
  • @SagarA 其实我不知道。但是你可以针对这个问题提出一个新问题。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多