【问题标题】:Axlsx Ruby Gem - Creating a dropdown with custom valuesAxlsx Ruby Gem - 使用自定义值创建下拉列表
【发布时间】:2017-02-23 16:44:34
【问题描述】:

我正在使用axlsx gem 将数据从 Ruby/Rails 导出到 excel 中。

我需要添加一个带有自定义值的下拉列表 - value1、value2、value3 等。以下是我尝试过的代码

excel = Axlsx::Package.new
wb = excel.workbook

wb.add_worksheet(name: "sample_sheet") do |sheet|
  sheet.add_data_validation("A1:A100", {
      :type => :list,
      :formula1 => "value1 value2 value3",
      :showDropDown => false,
      :showErrorMessage => true,
      :errorTitle => '',
      :error => 'Please use the dropdown selector to choose the value',
      :errorStyle => :stop,
      :showInputMessage => true,
      :prompt => 'Choose the value from the dropdown'
  })
end

excel.serialize('sample_excel.xlsx')

代码创建了 excel,但是当我打开它时,我得到了这个 excel 错误 这些值不会添加到下拉列表中。

或者,

:formula1 => "B1:B2"

工作正常,它将 B1 和 B2 的内容添加到下拉列表中。在我的用例中,我需要添加自定义值,它们不存储在 Excel 工作表中。

在数据验证下拉列表中添加自定义值的正确方法是什么?请帮忙。

【问题讨论】:

  • 你解决了吗?
  • @RareFever 查看我的答案。

标签: ruby axlsx


【解决方案1】:

您需要将公式1更改为以下内容:

'"My, List, Of, Values"'

注意单引号内的双引号。

这里有一个如何做到这一点的例子: https://github.com/randym/axlsx/blob/master/examples/data_validation.rb#L54

【讨论】:

    【解决方案2】:

    似乎无法在公式中指定值,但以下解决方案适用于您的情况。

    .axlsx 文件上添加另一张表以保留您的自定义值:

    months_sheet = wb.add_worksheet(:name => 'DropDown Values') { |ws| ws.sheet_protection.password = 'pa55w0rd' } 
    months_sheet.add_row ['value1', 'value2', 'value3'] 
    

    然后将代码更改为:

    wb.add_worksheet(name: "sample_sheet") do |sheet|
      sheet.add_data_validation("A1:A100", {
          :type => :list,
          :formula1 => "'DropDown Values'!A$1:C$1",
          :showDropDown => false,
          :showErrorMessage => true,
          :errorTitle => '',
          :error => 'Please use the dropdown selector to choose the value',
          :errorStyle => :stop,
          :showInputMessage => true,
          :prompt => 'Choose the value from the dropdown'
      })
    end
    

    A$1:A$100 上的 $s 是 necessary

    【讨论】:

    • 谢谢亚历山大。我已经考虑过这一点,但我不能使用额外的工作表或隐藏其他地方的值。我想知道 Axlsx gem atall 是否允许在下拉列表中使用自定义值。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-08-25
    • 2018-10-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多