2017-02-23 19 views
1

私はaxlsx gemを使ってRuby/RailsからExcelにデータをエクスポートしています。私はカスタム値とドロップダウンを追加する必要がAxlsx Ruby Gem - カスタム値でドロップダウンを作成

- 値1、値、値3など以下は、私はコードはExcelを作成しますが、私はそれを開いたとき、私はこのExcelのエラーを取得する

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 error 値はドロップダウンリストに追加されません。

また、正常に動作します

:formula1 => "B1:B2" 
は、それがドロップダウンにB1とB2の内容を追加します。私のユースケースでは、カスタム値を追加する必要があり、Excelシートには格納されません。

データ検証のドロップダウンでカスタム値を追加する正しい方法は何ですか?親切に助けてください。

+0

あなたはそれを解決しましたか? –

+0

@RareFeverチェックアウト私の答え。 –

答えて

1

あなたの数式に値を指定する方法はないようですが、あなたのケースでは以下の解決策が有効です。 .axlsxファイルで

カスタム値を維持するために別のシートを追加します。

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

その後にコードを変更:A$1:A$100$

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 

necessaryです。

+0

ありがとうアレクサンダー。私はすでにこれを考慮していましたが、別のシートを使用したり、値を他の場所に隠すことはできません。 Axelsx gem atallがドロップダウンでカスタム値を使用できるかどうかを知りたい。 –

関連する問題