Axlsx gemを使用してこの要件を解決しました。
Axlsx は優れた機能を提供します。検証用の gem have Axlsx::DataValidation
.
これにより、データ型の検証を追加できます: :whole, :decimal, :date, :time, :textLength, :list, :custom
. それぞれに式を指定することもできます。
色の列にいくつかの色の値のみを取得するために、検証を追加し、シートの保存シートをエクスポートして、以下のようにエクスポートしました。
p = Axlsx::Package.new
p.workbook.add_worksheet(name: "dropdown") do |ws|
ws.add_row ["Color"]
ws.add_data_validation("A2:A1000", {
:type => :list,
:formula1 => 'Red orange Blue White',
:showDropDown => false,
:showErrorMessage => true,
:errorTitle => '',
:error => 'Please use the dropdown selector to choose a valid color',
:errorStyle => :stop,
:showInputMessage => true,
:promptTitle => 'Color',
:prompt => 'Please select a valid color'})
end
p.serialize 'data_validation.xlsx'
これまで、検証をシートに適用するために限られた範囲の行しか指定できませんでした。
検証のために列全体を指定する方法を誰かが追加できる場合、この回答は完璧なソリューションになります。
ありがとう。